using System; using System.Collections; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Linq; using System.Net; using System.Web; using System.Web.Http; using System.Web.Http.Description; using DevExpress.Office.Utils; using iBemsDataService.Model; using iBemsDataService.Util; using System.Transactions; using System.Diagnostics; namespace iBemsDataService.Controllers { public class BemsControlAHUTempConfigController : ApiController { private iBemsEntities db = new iBemsEntities(); [ResponseType(typeof(void))] [ActionName("Insert")] public IHttpActionResult PostBemsControlAHUTempConfigInsert(ControlAHUTempConfig ControlAHUTempConfig) { if (!ModelState.IsValid) { return BadRequest(ModelState); } try { // 그룹을 추가하면서 메뉴들을 그룹에 맞는 권한 테이블로 모두 옮겨 놓는다. using (var transaction = new TransactionScope()) { var newPriceFormula = db.BemsControlAHUTempConfig.Add(new BemsControlAHUTempConfig { SiteId = ControlAHUTempConfig.SiteId, FacilityTypeId = ControlAHUTempConfig.FacilityTypeId, FacilityCode = ControlAHUTempConfig.FacilityCode, MaxTemperature = Math.Round(ControlAHUTempConfig.MaxTemperature * 100) / 100.0, MinTemperature = Math.Round(ControlAHUTempConfig.MinTemperature * 100) / 100.0, }); db.SaveChanges(); transaction.Complete(); } } catch (Exception) { throw; } return StatusCode(HttpStatusCode.NoContent); } [ResponseType(typeof(void))] [ActionName("InsertAll")] public IHttpActionResult PostBemsPriceFormulaInsertAll(List ControlAHUTempConfig) { if (!ModelState.IsValid) { return BadRequest(ModelState); } try { using (var transaction = new TransactionScope()) { foreach (var m in ControlAHUTempConfig) { var foundQuery = db.BemsControlAHUTempConfig.Where( x => x.SiteId == m.SiteId && x.FacilityTypeId == m.FacilityTypeId && x.FacilityCode == m.FacilityCode); if (foundQuery.Any() == false) { var newM = db.BemsControlAHUTempConfig.Add(new BemsControlAHUTempConfig { SiteId = m.SiteId, FacilityTypeId = m.FacilityTypeId, FacilityCode = m.FacilityCode, MaxTemperature = m.MaxTemperature, MinTemperature = m.MinTemperature }); } } db.SaveChanges(); transaction.Complete(); } } catch (Exception) { throw; } return StatusCode(HttpStatusCode.NoContent); } [ResponseType(typeof(void))] [ActionName("DeleteAll")] public IHttpActionResult PostBemsPriceFormulaDeleteAll(ControlAHUTempConfig ControlAHUTempConfig) { if (!ModelState.IsValid) { return BadRequest(ModelState); } try { using (var transaction = new TransactionScope()) { var foundQuery = db.BemsControlAHUTempConfig.Where( x => x.SiteId == ControlAHUTempConfig.SiteId && x.FacilityTypeId == ControlAHUTempConfig.FacilityTypeId && x.FacilityCode == ControlAHUTempConfig.FacilityCode); //db.BemsPriceFormula.Remove(foundQuery.FirstOrDefault()); 한개만 지운다 new QueryManager(db).Delete(db.BemsControlAHUTempConfig, foundQuery); db.SaveChanges(); transaction.Complete(); } } catch (Exception) { throw; } return StatusCode(HttpStatusCode.NoContent); } [ResponseType(typeof(void))] [ActionName("Update")] public IHttpActionResult PostBemsPriceFormulaUpdate(ControlAHUTempConfig ControlAHUTempConfig) { if (!ModelState.IsValid) { return BadRequest(ModelState); } try { using (var transaction = new TransactionScope()) { var foundQuery = db.BemsControlAHUTempConfig.Where( x => x.SiteId == ControlAHUTempConfig.SiteId && x.FacilityTypeId == ControlAHUTempConfig.FacilityTypeId && x.FacilityCode == ControlAHUTempConfig.FacilityCode ); new QueryManager(db).Delete(db.BemsControlAHUTempConfig, foundQuery); var newPriceFormula = db.BemsControlAHUTempConfig.Add(new BemsControlAHUTempConfig { SiteId = ControlAHUTempConfig.SiteId, FacilityTypeId = ControlAHUTempConfig.FacilityTypeId, FacilityCode = ControlAHUTempConfig.FacilityCode, MaxTemperature = Math.Round(ControlAHUTempConfig.MaxTemperature * 100) / 100.0, MinTemperature = Math.Round(ControlAHUTempConfig.MinTemperature * 100) / 100.0 }); db.SaveChanges(); transaction.Complete(); } } catch (Exception) { throw; } return StatusCode(HttpStatusCode.NoContent); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } public class ControlAHUTempConfig { public int SiteId { get; set; } public int FacilityTypeId { get; set; } public int FacilityCode { get; set; } public float MaxTemperature { get; set; } public float MinTemperature { get; set; } }; } }