Exemple #1
0
        public static List <int> RecieveReportForTechnicalFanCoilChatIds()
        {
            var entities = new IndustrialMonitoringEntities();
            var service  =
                entities.Services.FirstOrDefault(x => x.ServiceName == "RecieveReportForTechnicalFanCoil");

            var users = entities.UsersServicesPermissions.Where(x => x.ServiceId == service.ServiceId);

            List <int> chatIds = new List <int>();

            foreach (UsersServicesPermission u in users)
            {
                var userBot = entities.FanCoilBots.Where(x => x.UserId == u.UserId);

                foreach (var bt in userBot)
                {
                    if (bt.ChatId != null)
                    {
                        chatIds.Add(bt.ChatId.Value);
                    }
                }
            }

            return(chatIds);
        }
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                DateTime now = DateTime.Now;

                DateTime timeToArchive       = now - new TimeSpan(0, 1, 0, 0);
                DateTime timeToRemoveGarbage = now - new TimeSpan(1, 0, 0, 0);

                IndustrialMonitoringEntities entities = new IndustrialMonitoringEntities();

                var items = entities.ItemsLogs.Where(x => x.Time < timeToArchive).ToList();
                List <ItemsLogArchive> allItems = new List <ItemsLogArchive>();

                foreach (ItemsLog item in items)
                {
                    ItemsLogArchive archive = new ItemsLogArchive();
                    archive.ItemId = item.ItemId;
                    archive.Time   = item.Time;
                    archive.Value  = item.Value;

                    allItems.Add(archive);
                }

                entities.ItemsLogArchives.AddRange(allItems);
                entities.ItemsLogs.RemoveRange(items);

                var itemsToRemove1 = entities.ItemsLogRawDatas.Where(x => x.Time < timeToArchive);

                if (itemsToRemove1.Any())
                {
                    entities.ItemsLogRawDatas.RemoveRange(itemsToRemove1);
                }

                var itemsToRemove2 = entities.LogOutliers.Where(x => x.Time < timeToRemoveGarbage);

                if (itemsToRemove2.Any())
                {
                    entities.LogOutliers.RemoveRange(itemsToRemove2);
                }

                entities.SaveChanges();
            }
            catch (Exception ex)
            {
                Logger.LogMonitoringServiceLibrary(ex);
            }
        }