cc09cc6cdd211d58f81fe2c48bc256744544884e.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  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 BemsEnergyDailyController : ApiController
  19. {
  20. private iBemsEntities db = new iBemsEntities();
  21. [ResponseType(typeof(void))]
  22. [ActionName("InsertPart")]
  23. public IHttpActionResult PostBemsEnergyDailyInsert(EnergyDaily EnergyDaily)
  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.BemsEnergyDaily.Add(new BemsEnergyDaily
  35. {
  36. SiteId = EnergyDaily.SiteId,
  37. BuildingId = EnergyDaily.BuildingId,
  38. ServiceTypeId = EnergyDaily.ServiceTypeId,
  39. FuelTypeId = EnergyDaily.FuelTypeId,
  40. CreatedDate = EnergyDaily.CreatedDate,
  41. Prediction = Math.Round(EnergyDaily.Prediction * 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<EnergyDaily> EnergyDaily)
  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 EnergyDaily)
  66. {
  67. var foundQuery = db.BemsEnergyDaily.Where(
  68. x =>
  69. x.SiteId == m.SiteId &&
  70. x.BuildingId == m.BuildingId &&
  71. x.ServiceTypeId == m.ServiceTypeId &&
  72. x.FuelTypeId == m.FuelTypeId &&
  73. x.CreatedDate == m.CreatedDate);
  74. if (foundQuery.Any() == false)
  75. {
  76. var newM = db.BemsEnergyDaily.Add(new BemsEnergyDaily
  77. {
  78. SiteId = m.SiteId,
  79. BuildingId = m.BuildingId,
  80. ServiceTypeId = m.ServiceTypeId,
  81. FuelTypeId = m.FuelTypeId,
  82. CreatedDate = m.CreatedDate,
  83. Prediction = m.Prediction,
  84. Measurement = m.Measurement,
  85. Goal = m.Goal,
  86. Prediction_Regression = m.Prediction_Regression,
  87. MeanT = m.MeanT,
  88. HDD = m.HDD,
  89. CDD = m.CDD
  90. });
  91. }
  92. }
  93. db.SaveChanges();
  94. transaction.Complete();
  95. }
  96. }
  97. catch (Exception)
  98. {
  99. throw;
  100. }
  101. return StatusCode(HttpStatusCode.NoContent);
  102. }
  103. [ResponseType(typeof(void))]
  104. [ActionName("DeleteAll")]
  105. public IHttpActionResult PostBemsPriceFormulaDeleteAll(EnergyDaily EnergyDaily)
  106. {
  107. if (!ModelState.IsValid)
  108. {
  109. return BadRequest(ModelState);
  110. }
  111. try
  112. {
  113. using (var transaction = new TransactionScope())
  114. {
  115. var foundQuery = db.BemsEnergyDaily.Where(
  116. x =>
  117. x.SiteId == EnergyDaily.SiteId &&
  118. x.BuildingId == EnergyDaily.BuildingId &&
  119. x.ServiceTypeId == EnergyDaily.ServiceTypeId &&
  120. x.FuelTypeId == EnergyDaily.FuelTypeId &&
  121. x.CreatedDate == EnergyDaily.CreatedDate);
  122. //db.BemsPriceFormula.Remove(foundQuery.FirstOrDefault()); 한개만 지운다
  123. new QueryManager<Model.BemsEnergyDaily>(db).Delete(db.BemsEnergyDaily, foundQuery);
  124. db.SaveChanges();
  125. transaction.Complete();
  126. }
  127. }
  128. catch (Exception)
  129. {
  130. throw;
  131. }
  132. return StatusCode(HttpStatusCode.NoContent);
  133. }
  134. [ResponseType(typeof(void))]
  135. [ActionName("Update")]
  136. public IHttpActionResult PostBemsEnergyDailyUpdate(EnergyDaily EnergyDaily)
  137. {
  138. if (!ModelState.IsValid)
  139. {
  140. return BadRequest(ModelState);
  141. }
  142. try
  143. {
  144. using (var transaction = new TransactionScope())
  145. {
  146. var foundQuery = db.BemsEnergyDaily.Where(
  147. x =>
  148. x.SiteId == EnergyDaily.SiteId &&
  149. x.BuildingId == EnergyDaily.BuildingId &&
  150. x.ServiceTypeId == EnergyDaily.ServiceTypeId &&
  151. x.FuelTypeId == EnergyDaily.FuelTypeId &&
  152. x.CreatedDate == EnergyDaily.CreatedDate
  153. );
  154. new QueryManager<BemsEnergyDaily>(db).Delete(db.BemsEnergyDaily, foundQuery);
  155. var newPriceFormula = db.BemsEnergyDaily.Add(new BemsEnergyDaily
  156. {
  157. SiteId = EnergyDaily.SiteId,
  158. BuildingId = EnergyDaily.BuildingId,
  159. ServiceTypeId = EnergyDaily.ServiceTypeId,
  160. FuelTypeId = EnergyDaily.FuelTypeId,
  161. CreatedDate = EnergyDaily.CreatedDate,
  162. Prediction = EnergyDaily.Prediction,
  163. Measurement = EnergyDaily.Measurement,
  164. Goal = EnergyDaily.Goal,
  165. Prediction_Regression = EnergyDaily.Prediction_Regression,
  166. MeanT = EnergyDaily.MeanT,
  167. HDD = EnergyDaily.HDD,
  168. CDD = EnergyDaily.CDD
  169. });
  170. db.SaveChanges();
  171. transaction.Complete();
  172. }
  173. }
  174. catch (Exception)
  175. {
  176. throw;
  177. }
  178. return StatusCode(HttpStatusCode.NoContent);
  179. }
  180. [ResponseType(typeof(void))]
  181. [ActionName("UpdatePart")]
  182. public IHttpActionResult PostBemsEnergyDailyUpdatePart(EnergyDaily EnergyDaily)
  183. {
  184. if (!ModelState.IsValid)
  185. {
  186. return BadRequest(ModelState);
  187. }
  188. try
  189. {
  190. using (var transaction = new TransactionScope())
  191. {
  192. var foundQuery = db.BemsEnergyDaily
  193. .Where(x =>
  194. x.SiteId == EnergyDaily.SiteId &&
  195. x.BuildingId == EnergyDaily.BuildingId &&
  196. x.ServiceTypeId == EnergyDaily.ServiceTypeId &&
  197. x.FuelTypeId == EnergyDaily.FuelTypeId &&
  198. x.CreatedDate == EnergyDaily.CreatedDate);
  199. var tempvalue = foundQuery.FirstOrDefault();
  200. new QueryManager<Model.BemsEnergyDaily>(db).Delete(db.BemsEnergyDaily, foundQuery);
  201. var newPriceFormula = db.BemsEnergyDaily.Add(new BemsEnergyDaily
  202. {
  203. SiteId = EnergyDaily.SiteId,
  204. BuildingId = EnergyDaily.BuildingId,
  205. ServiceTypeId = EnergyDaily.ServiceTypeId,
  206. FuelTypeId = EnergyDaily.FuelTypeId,
  207. CreatedDate = EnergyDaily.CreatedDate,
  208. Prediction = Math.Round(EnergyDaily.Prediction * 100) / 100.0,
  209. Measurement = tempvalue.Measurement,
  210. Goal = tempvalue.Goal,
  211. Prediction_Regression = tempvalue.Prediction_Regression,
  212. MeanT = tempvalue.MeanT,
  213. HDD = tempvalue.HDD,
  214. CDD = tempvalue.CDD
  215. });
  216. db.SaveChanges();
  217. transaction.Complete();
  218. }
  219. }
  220. catch (Exception)
  221. {
  222. throw;
  223. }
  224. return StatusCode(HttpStatusCode.NoContent);
  225. }
  226. [ResponseType(typeof(void))]
  227. [ActionName("UpdatePart2")]
  228. public IHttpActionResult PostBemsEnergyDailyUpdatePart2(EnergyDaily EnergyDaily)
  229. {
  230. if (!ModelState.IsValid)
  231. {
  232. return BadRequest(ModelState);
  233. }
  234. try
  235. {
  236. using (var transaction = new TransactionScope())
  237. {
  238. var foundQuery = db.BemsEnergyDaily
  239. .Where(x =>
  240. x.SiteId == EnergyDaily.SiteId &&
  241. x.BuildingId == EnergyDaily.BuildingId &&
  242. x.ServiceTypeId == EnergyDaily.ServiceTypeId &&
  243. x.FuelTypeId == EnergyDaily.FuelTypeId &&
  244. x.CreatedDate == EnergyDaily.CreatedDate);
  245. var tempvalue = foundQuery.FirstOrDefault();
  246. new QueryManager<Model.BemsEnergyDaily>(db).Delete(db.BemsEnergyDaily, foundQuery);
  247. var newPriceFormula = db.BemsEnergyDaily.Add(new BemsEnergyDaily
  248. {
  249. SiteId = EnergyDaily.SiteId,
  250. BuildingId = EnergyDaily.BuildingId,
  251. ServiceTypeId = EnergyDaily.ServiceTypeId,
  252. FuelTypeId = EnergyDaily.FuelTypeId,
  253. CreatedDate = EnergyDaily.CreatedDate,
  254. Prediction = Math.Round(EnergyDaily.Prediction * 100) / 100.0,
  255. Measurement = tempvalue.Measurement,
  256. Goal = Math.Round(EnergyDaily.Goal * 100) / 100.0,
  257. Prediction_Regression = tempvalue.Prediction_Regression,
  258. MeanT = tempvalue.MeanT,
  259. HDD = tempvalue.HDD,
  260. CDD = tempvalue.CDD
  261. });
  262. db.SaveChanges();
  263. transaction.Complete();
  264. }
  265. }
  266. catch (Exception)
  267. {
  268. throw;
  269. }
  270. return StatusCode(HttpStatusCode.NoContent);
  271. }
  272. protected override void Dispose(bool disposing)
  273. {
  274. if (disposing)
  275. {
  276. db.Dispose();
  277. }
  278. base.Dispose(disposing);
  279. }
  280. public class EnergyDaily
  281. {
  282. public int SiteId { get; set; }
  283. public int BuildingId { get; set; }
  284. public Int16 ServiceTypeId { get; set; }
  285. public Int16 FuelTypeId { get; set; }
  286. public DateTime CreatedDate { get; set; }
  287. public float Prediction { get; set; }
  288. public float Measurement { get; set; }
  289. public float Goal { get; set; }
  290. public float Prediction_Regression { get; set; }
  291. public float MeanT { get; set; }
  292. public float HDD { get; set; }
  293. public float CDD { get; set; }
  294. };
  295. }
  296. }