| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 | 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 BemsEnergyDailyController : ApiController    {        private iBemsEntities db = new iBemsEntities();        [ResponseType(typeof(void))]        [ActionName("InsertPart")]        public IHttpActionResult PostBemsEnergyDailyInsert(EnergyDaily EnergyDaily)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                // 그룹을 추가하면서 메뉴들을 그룹에 맞는 권한 테이블로 모두 옮겨 놓는다.                using (var transaction = new TransactionScope())                {                    var newPriceFormula = db.BemsEnergyDaily.Add(new BemsEnergyDaily                    {                        SiteId = EnergyDaily.SiteId,                        BuildingId = EnergyDaily.BuildingId,                        ServiceTypeId = EnergyDaily.ServiceTypeId,                        FuelTypeId = EnergyDaily.FuelTypeId,                        CreatedDate = EnergyDaily.CreatedDate,                        Prediction = Math.Round(EnergyDaily.Prediction * 100) / 100.0,                    });                    db.SaveChanges();                    transaction.Complete();                }            }            catch (Exception)            {                throw;            }            return StatusCode(HttpStatusCode.NoContent);        }        [ResponseType(typeof(void))]        [ActionName("InsertAll")]        public IHttpActionResult PostBemsPriceFormulaInsertAll(List<EnergyDaily> EnergyDaily)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                using (var transaction = new TransactionScope())                {                    foreach (var m in EnergyDaily)                    {                        var foundQuery = db.BemsEnergyDaily.Where(                            x =>                                x.SiteId == m.SiteId &&                                x.BuildingId == m.BuildingId &&                                x.ServiceTypeId == m.ServiceTypeId &&                                x.FuelTypeId == m.FuelTypeId &&                                x.CreatedDate == m.CreatedDate);                        if (foundQuery.Any() == false)                        {                            var newM = db.BemsEnergyDaily.Add(new BemsEnergyDaily                            {                                SiteId = m.SiteId,                                BuildingId = m.BuildingId,                                ServiceTypeId = m.ServiceTypeId,                                FuelTypeId = m.FuelTypeId,                                CreatedDate = m.CreatedDate,                                Prediction = m.Prediction,                                Measurement = m.Measurement,                                Goal = m.Goal,                                Prediction_Regression = m.Prediction_Regression,                                MeanT = m.MeanT,                                HDD = m.HDD,                                CDD = m.CDD                            });                        }                    }                    db.SaveChanges();                    transaction.Complete();                }            }            catch (Exception)            {                throw;            }            return StatusCode(HttpStatusCode.NoContent);        }        [ResponseType(typeof(void))]        [ActionName("DeleteAll")]        public IHttpActionResult PostBemsPriceFormulaDeleteAll(EnergyDaily EnergyDaily)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                using (var transaction = new TransactionScope())                {                    var foundQuery = db.BemsEnergyDaily.Where(                        x =>                             x.SiteId == EnergyDaily.SiteId &&                                x.BuildingId == EnergyDaily.BuildingId &&                                x.ServiceTypeId == EnergyDaily.ServiceTypeId &&                                x.FuelTypeId == EnergyDaily.FuelTypeId &&                                x.CreatedDate == EnergyDaily.CreatedDate);                    //db.BemsPriceFormula.Remove(foundQuery.FirstOrDefault()); 한개만 지운다                    new QueryManager<Model.BemsEnergyDaily>(db).Delete(db.BemsEnergyDaily, foundQuery);                    db.SaveChanges();                    transaction.Complete();                }            }            catch (Exception)            {                throw;            }            return StatusCode(HttpStatusCode.NoContent);        }        [ResponseType(typeof(void))]        [ActionName("Update")]        public IHttpActionResult PostBemsEnergyDailyUpdate(EnergyDaily EnergyDaily)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                using (var transaction = new TransactionScope())                {                    var foundQuery = db.BemsEnergyDaily.Where(                        x =>                        x.SiteId == EnergyDaily.SiteId &&                        x.BuildingId == EnergyDaily.BuildingId &&                        x.ServiceTypeId == EnergyDaily.ServiceTypeId &&                        x.FuelTypeId == EnergyDaily.FuelTypeId &&                        x.CreatedDate == EnergyDaily.CreatedDate                        );                    new QueryManager<BemsEnergyDaily>(db).Delete(db.BemsEnergyDaily, foundQuery);                    var newPriceFormula = db.BemsEnergyDaily.Add(new BemsEnergyDaily                    {                        SiteId = EnergyDaily.SiteId,                        BuildingId = EnergyDaily.BuildingId,                        ServiceTypeId = EnergyDaily.ServiceTypeId,                        FuelTypeId = EnergyDaily.FuelTypeId,                        CreatedDate = EnergyDaily.CreatedDate,                        Prediction = EnergyDaily.Prediction,                        Measurement = EnergyDaily.Measurement,                        Goal = EnergyDaily.Goal,                        Prediction_Regression = EnergyDaily.Prediction_Regression,                        MeanT = EnergyDaily.MeanT,                        HDD = EnergyDaily.HDD,                        CDD = EnergyDaily.CDD                    });                    db.SaveChanges();                    transaction.Complete();                }            }            catch (Exception)            {                throw;            }            return StatusCode(HttpStatusCode.NoContent);        }        [ResponseType(typeof(void))]        [ActionName("UpdatePart")]        public IHttpActionResult PostBemsEnergyDailyUpdatePart(EnergyDaily EnergyDaily)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                using (var transaction = new TransactionScope())                {                    var foundQuery = db.BemsEnergyDaily                   .Where(x =>                     x.SiteId == EnergyDaily.SiteId &&                     x.BuildingId == EnergyDaily.BuildingId &&                     x.ServiceTypeId == EnergyDaily.ServiceTypeId &&                     x.FuelTypeId == EnergyDaily.FuelTypeId &&                     x.CreatedDate == EnergyDaily.CreatedDate);                    var tempvalue = foundQuery.FirstOrDefault();                    new QueryManager<Model.BemsEnergyDaily>(db).Delete(db.BemsEnergyDaily, foundQuery);                    var newPriceFormula = db.BemsEnergyDaily.Add(new BemsEnergyDaily                    {                        SiteId = EnergyDaily.SiteId,                        BuildingId = EnergyDaily.BuildingId,                        ServiceTypeId = EnergyDaily.ServiceTypeId,                        FuelTypeId = EnergyDaily.FuelTypeId,                        CreatedDate = EnergyDaily.CreatedDate,                        Prediction = Math.Round(EnergyDaily.Prediction * 100) / 100.0,                        Measurement = tempvalue.Measurement,                        Goal = tempvalue.Goal,                        Prediction_Regression = tempvalue.Prediction_Regression,                        MeanT = tempvalue.MeanT,                        HDD = tempvalue.HDD,                        CDD = tempvalue.CDD                    });                    db.SaveChanges();                    transaction.Complete();                }            }            catch (Exception)            {                throw;            }            return StatusCode(HttpStatusCode.NoContent);        }        [ResponseType(typeof(void))]        [ActionName("UpdatePart2")]        public IHttpActionResult PostBemsEnergyDailyUpdatePart2(EnergyDaily EnergyDaily)        {            if (!ModelState.IsValid)            {                return BadRequest(ModelState);            }            try            {                using (var transaction = new TransactionScope())                {                    var foundQuery = db.BemsEnergyDaily                   .Where(x =>                     x.SiteId == EnergyDaily.SiteId &&                     x.BuildingId == EnergyDaily.BuildingId &&                     x.ServiceTypeId == EnergyDaily.ServiceTypeId &&                     x.FuelTypeId == EnergyDaily.FuelTypeId &&                     x.CreatedDate == EnergyDaily.CreatedDate);                    var tempvalue = foundQuery.FirstOrDefault();                    new QueryManager<Model.BemsEnergyDaily>(db).Delete(db.BemsEnergyDaily, foundQuery);                    var newPriceFormula = db.BemsEnergyDaily.Add(new BemsEnergyDaily                    {                        SiteId = EnergyDaily.SiteId,                        BuildingId = EnergyDaily.BuildingId,                        ServiceTypeId = EnergyDaily.ServiceTypeId,                        FuelTypeId = EnergyDaily.FuelTypeId,                        CreatedDate = EnergyDaily.CreatedDate,                        Prediction = Math.Round(EnergyDaily.Prediction * 100) / 100.0,                        Measurement = tempvalue.Measurement,                        Goal = Math.Round(EnergyDaily.Goal * 100) / 100.0,                        Prediction_Regression = tempvalue.Prediction_Regression,                        MeanT = tempvalue.MeanT,                        HDD = tempvalue.HDD,                        CDD = tempvalue.CDD                    });                    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 EnergyDaily        {            public int SiteId { get; set; }            public int BuildingId { get; set; }            public Int16 ServiceTypeId { get; set; }            public Int16 FuelTypeId { get; set; }            public DateTime CreatedDate { get; set; }            public float Prediction { get; set; }            public float Measurement { get; set; }            public float Goal { get; set; }            public float Prediction_Regression { get; set; }            public float MeanT { get; set; }            public float HDD { get; set; }            public float CDD { get; set; }        };    }}
 |