c778077a5566694f8bccef38aff3bc844ece72c2.svn-base 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Data.Entity;
  5. using System.Data.Entity.Infrastructure;
  6. using System.Linq;
  7. using System.Net;
  8. using System.Web;
  9. using System.Web.Http;
  10. using System.Web.Http.Description;
  11. using DevExpress.Office.Utils;
  12. using iBemsDataService.Model;
  13. using iBemsDataService.Util;
  14. using System.Transactions;
  15. using System.Diagnostics;
  16. namespace iBemsDataService.Controllers
  17. {
  18. public class BemsEnergyConfigPercentWeekController : ApiController
  19. {
  20. private iBemsEntities db = new iBemsEntities();
  21. [ResponseType(typeof(void))]
  22. [ActionName("Insert")]
  23. public IHttpActionResult PostBemsEnergyConfigPercentWeekInsert(EnergyConfigPercentWeek EnergyConfigPercentWeek)
  24. {
  25. if (!ModelState.IsValid)
  26. {
  27. return BadRequest(ModelState);
  28. }
  29. try
  30. {
  31. // 그룹을 추가하면서 메뉴들을 그룹에 맞는 권한 테이블로 모두 옮겨 놓는다.
  32. using (var transaction = new TransactionScope())
  33. {
  34. var newPriceFormula = db.BemsEnergyConfigPercentWeek.Add(new BemsEnergyConfigPercentWeek
  35. {
  36. SiteId = EnergyConfigPercentWeek.SiteId,
  37. Year = EnergyConfigPercentWeek.Year,
  38. Week = EnergyConfigPercentWeek.Week,
  39. Electricity = Math.Round(EnergyConfigPercentWeek.Electricity * 100) / 100.0,
  40. Gas = Math.Round(EnergyConfigPercentWeek.Gas * 100) / 100.0,
  41. Water = Math.Round(EnergyConfigPercentWeek.Water * 100) / 100.0
  42. });
  43. db.SaveChanges();
  44. transaction.Complete();
  45. }
  46. }
  47. catch (Exception)
  48. {
  49. throw;
  50. }
  51. return StatusCode(HttpStatusCode.NoContent);
  52. }
  53. [ResponseType(typeof(void))]
  54. [ActionName("InsertAll")]
  55. public IHttpActionResult PostBemsPriceFormulaInsertAll(List<EnergyConfigPercentWeek> EnergyConfigPercentWeek)
  56. {
  57. if (!ModelState.IsValid)
  58. {
  59. return BadRequest(ModelState);
  60. }
  61. try
  62. {
  63. using (var transaction = new TransactionScope())
  64. {
  65. foreach (var m in EnergyConfigPercentWeek)
  66. {
  67. var foundQuery = db.BemsEnergyConfigPercentWeek.Where(
  68. x =>
  69. x.SiteId == m.SiteId &&
  70. x.Year == m.Year &&
  71. x.Week == m.Week);
  72. if (foundQuery.Any() == false)
  73. {
  74. var newM = db.BemsEnergyConfigPercentWeek.Add(new BemsEnergyConfigPercentWeek
  75. {
  76. SiteId = m.SiteId,
  77. Year = m.Year,
  78. Week = m.Week,
  79. Electricity = m.Electricity,
  80. Gas = m.Gas,
  81. Water = m.Water
  82. });
  83. }
  84. }
  85. db.SaveChanges();
  86. transaction.Complete();
  87. }
  88. }
  89. catch (Exception)
  90. {
  91. throw;
  92. }
  93. return StatusCode(HttpStatusCode.NoContent);
  94. }
  95. [ResponseType(typeof(void))]
  96. [ActionName("DeleteAll")]
  97. public IHttpActionResult PostBemsPriceFormulaDeleteAll(EnergyConfigPercentWeek EnergyConfigPercentWeek)
  98. {
  99. if (!ModelState.IsValid)
  100. {
  101. return BadRequest(ModelState);
  102. }
  103. try
  104. {
  105. using (var transaction = new TransactionScope())
  106. {
  107. var foundQuery = db.BemsEnergyConfigPercentWeek.Where(
  108. x =>
  109. x.SiteId == EnergyConfigPercentWeek.SiteId &&
  110. x.Year == EnergyConfigPercentWeek.Year &&
  111. x.Week == EnergyConfigPercentWeek.Week);
  112. //db.BemsPriceFormula.Remove(foundQuery.FirstOrDefault()); 한개만 지운다
  113. new QueryManager<BemsEnergyConfigPercentWeek>(db).Delete(db.BemsEnergyConfigPercentWeek, foundQuery);
  114. db.SaveChanges();
  115. transaction.Complete();
  116. }
  117. }
  118. catch (Exception)
  119. {
  120. throw;
  121. }
  122. return StatusCode(HttpStatusCode.NoContent);
  123. }
  124. [ResponseType(typeof(void))]
  125. [ActionName("Update")]
  126. public IHttpActionResult PostBemsPriceFormulaUpdate(EnergyConfigPercentWeek EnergyConfigPercentWeek)
  127. {
  128. if (!ModelState.IsValid)
  129. {
  130. return BadRequest(ModelState);
  131. }
  132. try
  133. {
  134. using (var transaction = new TransactionScope())
  135. {
  136. var foundQuery = db.BemsEnergyConfigPercentWeek.Where(
  137. x =>
  138. x.SiteId == EnergyConfigPercentWeek.SiteId &&
  139. x.Year == EnergyConfigPercentWeek.Year &&
  140. x.Week == EnergyConfigPercentWeek.Week
  141. );
  142. new QueryManager<BemsEnergyConfigPercentWeek>(db).Delete(db.BemsEnergyConfigPercentWeek, foundQuery);
  143. var newPriceFormula = db.BemsEnergyConfigPercentWeek.Add(new BemsEnergyConfigPercentWeek
  144. {
  145. SiteId = EnergyConfigPercentWeek.SiteId,
  146. Year = EnergyConfigPercentWeek.Year,
  147. Week = EnergyConfigPercentWeek.Week,
  148. Electricity = Math.Round(EnergyConfigPercentWeek.Electricity * 100) / 100.0,
  149. Gas = Math.Round(EnergyConfigPercentWeek.Gas * 100) / 100.0,
  150. Water = Math.Round(EnergyConfigPercentWeek.Water * 100) / 100.0
  151. });
  152. db.SaveChanges();
  153. transaction.Complete();
  154. }
  155. }
  156. catch (Exception)
  157. {
  158. throw;
  159. }
  160. return StatusCode(HttpStatusCode.NoContent);
  161. }
  162. protected override void Dispose(bool disposing)
  163. {
  164. if (disposing)
  165. {
  166. db.Dispose();
  167. }
  168. base.Dispose(disposing);
  169. }
  170. public class EnergyConfigPercentWeek
  171. {
  172. public int SiteId { get; set; }
  173. public int Year { get; set; }
  174. public int Week { get; set; }
  175. public float Electricity { get; set; }
  176. public float Gas { get; set; }
  177. public float Water { get; set; }
  178. };
  179. }
  180. }