private void DeleteScheduleFromDb(ScheduleClass dataBaseSchedule) { using (var context = new EsterClassesDataContext()) { var dbSch = context.Schedules.Single(s => s.ObjectId == dataBaseSchedule.Id); context.Schedules.DeleteOnSubmit(dbSch); context.SubmitChanges(); } }
public BacNetServer(IUnityContainer container) { State = BacNetServerStates.NotStarted; _container = container; _dataContext = new EsterClassesDataContext(); _pushValuesToClientTimer = new Timer(5000); _pushValuesToClientTimer.Elapsed += PushValuesToClientTimerTick; InitializeModule(); }
private List <ScheduleClass> GetSchedulesFromDataBase() { var dataBaseSchedules = new List <ScheduleClass>(); using (var context = new EsterClassesDataContext()) { foreach (var dbSchedule in context.Schedules) { var schedule = ConvertDbScheduleToScheduleClass(dbSchedule); dataBaseSchedules.Add(schedule); } } return(dataBaseSchedules); }
private void EditScheduleInDataBase(ScheduleClass controllerSchedule) { Schedule newDbSchedule = ConvertScheduleClassToDbSchedule(controllerSchedule); using (var context = new EsterClassesDataContext()) { var dbSchedule = context.Schedules.Single(s => s.ObjectId == newDbSchedule.ObjectId); dbSchedule.Title = newDbSchedule.Title; dbSchedule.OverrideController = newDbSchedule.OverrideController; dbSchedule.DeleteOnSync = newDbSchedule.DeleteOnSync; dbSchedule.SchedulesContents = newDbSchedule.SchedulesContents; dbSchedule.SchedulesControlledObjects = newDbSchedule.SchedulesControlledObjects; context.SubmitChanges(); } }
private void AddScheduleToDataBase(ScheduleClass controllerSchedule) { //добавление расписания в бд Schedule sch = ConvertScheduleClassToDbSchedule(controllerSchedule); using (var context = new EsterClassesDataContext()) { var dbSch = context.Schedules.FirstOrDefault(s => s.ObjectId == sch.ObjectId); if (dbSch != null) { context.Schedules.DeleteOnSubmit(dbSch); } context.Schedules.InsertOnSubmit(sch); context.SubmitChanges(); } }
public void DeleteSchedule(string id) { try { int intId = int.Parse(id); using (var context = new EsterClassesDataContext()) { var dbSchedule = context.Schedules.Single(s => s.ObjectId == intId); dbSchedule.DeleteOnSync = true; context.SubmitChanges(); } } catch { throw new BadRequestException(); } }
private int GetFreeIdForType(ScheduleTypes type) { using (var context = new EsterClassesDataContext()) { int minId = 0, maxId = 0; switch (type) { case ScheduleTypes.SKUD: minId = (int)ScheduleClass.MinScudTypeNumber; maxId = (int)ScheduleClass.MaxScudTypeNumber; break; case ScheduleTypes.Heat: minId = (int)ScheduleClass.MinHeatTypeNumber; maxId = (int)ScheduleClass.MaxHeatTypeNumber; break; case ScheduleTypes.Light: minId = (int)ScheduleClass.MinLightTypeNumber; maxId = (int)ScheduleClass.MaxLightTypeNumber; break; case ScheduleTypes.AC: minId = (int)ScheduleClass.MinACTypeNumber; maxId = (int)ScheduleClass.MaxACTypeNumber; break; case ScheduleTypes.Ventilation: minId = (int)ScheduleClass.MinVentialtionTypeNumber; maxId = (int)ScheduleClass.MaxVentialtionTypeNumber; break; } var schedules = context.Schedules.Where(s => s.ObjectId >= minId && s.ObjectId <= maxId).ToList(); for (var i = minId; i <= maxId; i++) { if (schedules.All(s => s.ObjectId != i)) { return(i); } } return(0); } }
public Stream GetScheduleById(string id) { try { int intId = int.Parse(id); using (var context = new EsterClassesDataContext()) { var dbSchedule = context.Schedules.Single(s => s.ObjectId == intId); var schedule = ConvertDbScheduleToScheduleClass(dbSchedule); var myResponseBody = JsonConvert.SerializeObject(schedule); if (WebOperationContext.Current != null) { WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8"; } return(new MemoryStream(Encoding.UTF8.GetBytes(myResponseBody))); } } catch { throw new BadRequestException(); } }
private static Stream GetPresentValueHistoryInternal(string deviceAddress, string objectAddress, string startDate = "", string endDate = "", string frequency = "") { var address = deviceAddress + "." + objectAddress; using (var context = new EsterClassesDataContext()) { var data = context.Histories.Where(h => h.Address == address); if (startDate != "") { data = data.Where(d => d.TimeStamp > DateTime.Parse(startDate)); } if (endDate != "") { data = data.Where(d => d.TimeStamp <= EndOfDay(DateTime.Parse(endDate))); } var res = new Dictionary <DateTime, string>(); if (data.Count() > 0) { foreach (var historyItem in data) { if (!res.ContainsKey(historyItem.TimeStamp)) { res.Add(historyItem.TimeStamp, historyItem.Value); } } if (frequency != "") { TimeSpan timeSpan; if (frequency == "auto") { var minValue = res.Keys.Min(); var maxValue = res.Keys.Max(); var daysDifference = (maxValue - minValue).Days; if (daysDifference <= 1) { timeSpan = new TimeSpan(0, 0, 30, 0); } else if (daysDifference <= 8) { timeSpan = new TimeSpan(0, 1, 0, 0); } else if (daysDifference > 8) { timeSpan = new TimeSpan(0, 12, 0, 0); } else { timeSpan = new TimeSpan(0, 0, 30, 0); } } else { timeSpan = new TimeSpan(0, 0, int.Parse(frequency), 0); } var t = JsonConvert.SerializeObject(timeSpan); t = HttpUtility.UrlEncode(t); res = MakeEqualTimePeriods(res, timeSpan); } } var myResponseBody = JsonConvert.SerializeObject(res); WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8"; return(new MemoryStream(Encoding.UTF8.GetBytes(myResponseBody))); } }
private List<ScheduleClass> GetSchedulesFromDataBase() { var dataBaseSchedules = new List<ScheduleClass>(); using (var context = new EsterClassesDataContext()) { foreach (var dbSchedule in context.Schedules) { var schedule = ConvertDbScheduleToScheduleClass(dbSchedule); dataBaseSchedules.Add(schedule); } } return dataBaseSchedules; }
private int GetFreeIdForType(ScheduleTypes type) { using (var context = new EsterClassesDataContext()) { int minId = 0, maxId = 0; switch (type) { case ScheduleTypes.SKUD: minId = (int) ScheduleClass.MinScudTypeNumber; maxId = (int) ScheduleClass.MaxScudTypeNumber; break; case ScheduleTypes.Heat: minId = (int) ScheduleClass.MinHeatTypeNumber; maxId = (int) ScheduleClass.MaxHeatTypeNumber; break; case ScheduleTypes.Light: minId = (int) ScheduleClass.MinLightTypeNumber; maxId = (int) ScheduleClass.MaxLightTypeNumber; break; case ScheduleTypes.AC: minId = (int) ScheduleClass.MinACTypeNumber; maxId = (int) ScheduleClass.MaxACTypeNumber; break; case ScheduleTypes.Ventilation: minId = (int) ScheduleClass.MinVentialtionTypeNumber; maxId = (int) ScheduleClass.MaxVentialtionTypeNumber; break; } var schedules = context.Schedules.Where(s => s.ObjectId >= minId && s.ObjectId <= maxId).ToList(); for (var i = minId; i <= maxId; i++) if (schedules.All(s => s.ObjectId != i)) return i; return 0; } }
private void AddScheduleToDataBase(ScheduleClass controllerSchedule) { //добавление расписания в бд Schedule sch = ConvertScheduleClassToDbSchedule(controllerSchedule); using (var context = new EsterClassesDataContext()) { var dbSch = context.Schedules.FirstOrDefault(s => s.ObjectId == sch.ObjectId); if (dbSch != null) context.Schedules.DeleteOnSubmit(dbSch); context.Schedules.InsertOnSubmit(sch); context.SubmitChanges(); } }
private static Stream GetPresentValueHistoryInternal(string deviceAddress, string objectAddress, string startDate = "", string endDate = "", string frequency = "") { var address = deviceAddress + "." + objectAddress; using (var context = new EsterClassesDataContext()) { var data = context.Histories.Where(h => h.Address == address); if (startDate != "") { data = data.Where(d => d.TimeStamp > DateTime.Parse(startDate)); } if (endDate != "") { data = data.Where(d => d.TimeStamp <= EndOfDay(DateTime.Parse(endDate))); } var res = new Dictionary<DateTime, string>(); if (data.Count() > 0) { foreach (var historyItem in data) { if (!res.ContainsKey(historyItem.TimeStamp)) res.Add(historyItem.TimeStamp, historyItem.Value); } if (frequency != "") { TimeSpan timeSpan; if (frequency == "auto") { var minValue = res.Keys.Min(); var maxValue = res.Keys.Max(); var daysDifference = (maxValue - minValue).Days; if (daysDifference <= 1) { timeSpan = new TimeSpan(0, 0, 30, 0); } else if (daysDifference <= 8) { timeSpan = new TimeSpan(0, 1, 0, 0); } else if (daysDifference > 8) { timeSpan = new TimeSpan(0, 12, 0, 0); } else { timeSpan = new TimeSpan(0, 0, 30, 0); } } else { timeSpan = new TimeSpan(0, 0, int.Parse(frequency), 0); } var t = JsonConvert.SerializeObject(timeSpan); t = HttpUtility.UrlEncode(t); res = MakeEqualTimePeriods(res, timeSpan); } } var myResponseBody = JsonConvert.SerializeObject(res); WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8"; return new MemoryStream(Encoding.UTF8.GetBytes(myResponseBody)); } }
public Stream GetScheduleById(string id) { try { int intId = int.Parse(id); using (var context = new EsterClassesDataContext()) { var dbSchedule = context.Schedules.Single(s => s.ObjectId == intId); var schedule = ConvertDbScheduleToScheduleClass(dbSchedule); var myResponseBody = JsonConvert.SerializeObject(schedule); if (WebOperationContext.Current != null) WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8"; return new MemoryStream(Encoding.UTF8.GetBytes(myResponseBody)); } } catch { throw new BadRequestException(); } }