Exemple #1
0
 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();
     }
 }
Exemple #2
0
 public BacNetServer(IUnityContainer container)
 {
     State = BacNetServerStates.NotStarted;
     _container = container;
     _dataContext = new EsterClassesDataContext();
     _pushValuesToClientTimer = new Timer(5000);
     _pushValuesToClientTimer.Elapsed += PushValuesToClientTimerTick;
     InitializeModule();
 }
Exemple #3
0
 public BacNetServer(IUnityContainer container)
 {
     State                             = BacNetServerStates.NotStarted;
     _container                        = container;
     _dataContext                      = new EsterClassesDataContext();
     _pushValuesToClientTimer          = new Timer(5000);
     _pushValuesToClientTimer.Elapsed += PushValuesToClientTimerTick;
     InitializeModule();
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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();
            }
        }
Exemple #6
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();
            }
        }
Exemple #7
0
 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();
     }
 }
Exemple #8
0
 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();
     }
 }
Exemple #9
0
        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);
            }
        }
Exemple #10
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();
     }
 }
Exemple #11
0
        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)));
            }
        }
Exemple #12
0
 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;
 }
Exemple #13
0
	    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;
		    }
	    }
Exemple #14
0
        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();
            }
        }
Exemple #15
0
        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();
            }
        }
Exemple #16
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();
     }
 }
Exemple #17
0
        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));
            }
        }
Exemple #18
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();
     }
 }