Ejemplo n.º 1
0
        /// <summary>
        /// Метод возвращающий List объектов по фильтру
        /// </summary>
        /// <param name="filters">Фильтр данных</param>
        /// <param name="page">Элемент для вывода информации о страницах на UI</param>
        /// <returns>List<Event></returns>
        public List <Event> Get(FilterEvent filters, ref DataPage dataPage)
        {
            using (DataBaseModel context = new DataBaseModel())
            {
                IQueryable <Event> query = from t in context.Events select t;

                if (filters.StartDate > filters.FinishDate)
                {
                    filters.StartDate  = DateTime.MinValue;
                    filters.FinishDate = DateTime.MaxValue;
                }
                if (filters.StartDate != DateTime.MinValue)
                {
                    query = query.Where(t => t.Time >= filters.StartDate);
                }
                if (filters.FinishDate != DateTime.MaxValue)
                {
                    DateTime dateTime = filters.FinishDate.AddDays(1);
                    query = query.Where(t => t.Time <= dateTime);
                }
                if (!String.IsNullOrEmpty(filters.Message))
                {
                    query = query.Where(t => t.Message.Contains(filters.Message));
                }

                dataPage.sizeAll = query.Select(t => t).Count();                                                                                   //Всего записей в таблице БД по данному фильтру
                query            = query.OrderBy(t => t.Time).Skip(filters.Page * dataPage.pageSizeMax).Take(dataPage.pageSizeMax).Select(t => t); //Выборка из n записей соответствующих выбранной странице

                List <Event> myList = query.ToList();

                return(myList);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Стандартная инициализация
        /// </summary>
        private void InitializeDB()
        {
            try
            {
                DataBaseModel context = new DataBaseModel(); //Создадим контекст подвязки к БД
                context.Database.Initialize(false);          //Запустить инициализацию базы данных
                Console.WriteLine("Инициализация выполнена\n" + context.Database.Connection.ConnectionString);
            }
            catch (Exception exception)
            {
                // Если при создании БД возникла ошибка, отобразим ее в окне отладчика
                //MessageBox.Show("Инициализация не выполнена.Ошибка: " + excaption.Message);
                //Exceptions.Add(excaption);

                Console.WriteLine("Инициализация не выполнена.Ошибка: " + exception.Message);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Удаляет записи, которые хранятся больше определенного времени в таблице "Исключения"
        /// </summary>
        public void RemoveExceptOfLifeTime()
        {
            DateTime today       = DateTime.Now;
            DateTime DaysEarlier = today.AddDays(-_lifeTimeInDays);

            using (DataBaseModel context = new DataBaseModel())
            {
                try
                {
                    List <Except> exceptForClearning = (from t in context.Exceptions where t.Time < DaysEarlier select t).ToList();
                    context.Exceptions.RemoveRange(exceptForClearning);
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Обновление записи Квитирования в таблице "Аварии"
 /// </summary>
 /// <param name="id">Запись по Id в таблице</param>
 public void AddAlarmConfirm(int id)
 {
     using (DataBaseModel context = new DataBaseModel())
     {
         try
         {
             Alarm alr = context.Alarms.Find(id);
             if (alr != null)
             {
                 alr.TimeConfirm = DateTime.Now;
                 context.Alarms.AddOrUpdate(alr);
             }
             context.SaveChanges();
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.Message);
         }
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Обновление "время нормализации" в таблице "Аварии"
        /// </summary>
        /// <param name="message">Сообщение ранее добавленное в таблицу</param>
        /// <param name="timeWrite">Время создания записи</param>
        public void AddAlarmNormalize(string message, DateTime timeWrite)
        {
            if (!String.IsNullOrEmpty(message))
            {
                using (DataBaseModel context = new DataBaseModel())
                {
                    try
                    {
                        DateTime todayStart = timeWrite;
                        DateTime start      = todayStart.AddDays(-1);

                        DateTime todayFinish = timeWrite;
                        DateTime stop        = todayFinish.AddDays(1);

                        List <Alarm> alarms = context.Alarms.Where(e => e.Time >= start & e.Time <= stop & e.Message == message & e.TimeNormalize == null).ToList();
                        if (alarms == null)
                        {
                            return;
                        }

                        DateTime time  = DateTime.MinValue;
                        Alarm    alarm = alarms[0];
                        foreach (Alarm alr in alarms)
                        {
                            if (alr.Time > time)
                            {
                                time  = alr.Time;
                                alarm = alr;
                            }
                        }
                        alarm.TimeNormalize = DateTime.Now;
                        context.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Оставляет допустимое кол-во записей в таблице "Исключения"
        /// </summary>
        public void RemoveExceptOfCount()
        {
            using (DataBaseModel context = new DataBaseModel())
            {
                int count = context.Exceptions.Count();
                if (count >= _maxCount)
                {
                    int dif = count - _maxCount;

                    try
                    {
                        List <Except> exceptForClearning = context.Exceptions.Take(dif).OrderBy(t => t.Time).ToList();
                        context.Exceptions.RemoveRange(exceptForClearning);
                        context.SaveChanges();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
            }
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Добавление записи в таблицу "Исключения"
 /// </summary>
 /// <param name="ex">Объект исключения</param>
 public void AddException(Exception ex)
 {
     using (DataBaseModel context = new DataBaseModel())
     {
         try
         {
             Except exept = new Except()
             {
                 Time            = DateTime.Now,
                 Message         = ex.Message?.ToString() ?? String.Empty,
                 ClassException  = ex.TargetSite?.DeclaringType.ToString() ?? String.Empty,
                 MethodException = ex.TargetSite?.Name.ToString() ?? String.Empty
             };
             context.Exceptions.Add(exept);
             context.SaveChanges();
         }
         catch (Exception e)
         {
             Console.WriteLine(e.Message);
         }
     }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Добавление записи в БД, в таблицу "События"
 /// </summary>
 /// <param name="message">Сообщение, которое необходимо зарегистрировать</param>
 public void AddEvent(string message)
 {
     if (!String.IsNullOrEmpty(message))
     {
         using (DataBaseModel context = new DataBaseModel())
         {
             try
             {
                 var evt = new Event()
                 {
                     Time = DateTime.Now, Message = message
                 };
                 context.Events.Add(evt);
                 context.SaveChanges();
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
         }
     }
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Добавление записи в таблицу "Аварии"
 /// </summary>
 /// <param name="message">Сообщение, которое необходимо зерегистрировать</param>
 /// <param name="time">Время добавления записи</param>
 public void AddAlarm(DateTime time, string message)
 {
     if (!String.IsNullOrEmpty(message))
     {
         using (DataBaseModel context = new DataBaseModel())
         {
             try
             {
                 var alr = new Alarm()
                 {
                     Time    = time,
                     Message = message
                 };
                 context.Alarms.Add(alr);
                 context.SaveChanges();
             }
             catch (Exception ex)
             {
                 Console.WriteLine(ex.Message);
             }
         }
     }
 }