/// <summary>
        /// Редактировать бронь на комнату
        /// </summary>
        /// <param name="id">Идентификатор</param>
        /// <param name="mainDate">Дата</param>
        /// <param name="start">Время начала</param>
        /// <param name="end">Конечное время</param>
        /// <param name="room">Комната</param>
        /// <returns></returns>
        public void Edit(int id, DateTime mainDate, DateTime start, DateTime end, RoomInfo room)
        {
            orderRoom = dataContent.OrderRooms.FirstOrDefault(x => x.ID == id);
            if (orderRoom == null)
            {
                throw new ArgumentException("Не найден объект");
            }
            OrderRoomStatus status = OrderRoomStatus.FilingArmor;

            switch (orderRoom.Status)
            {
            case 1:
            {
                status = OrderRoomStatus.ReservationApproved;
                break;
            }

            case 2:
            {
                status = OrderRoomStatus.ReservationDeclined;
                break;
            }

            case 3:
            {
                status = OrderRoomStatus.ReservationMarkedForDeletionByManager;
                break;
            }
            }
            Check(mainDate, start, end, null, room, status, false);
            SetValue(mainDate, start, end, null, room, status, false);
        }
 /// <summary>
 /// Редактировать бронь на комнату
 /// </summary>
 /// <param name="id">Идентификатор</param>
 /// <param name="mainDate">Дата</param>
 /// <param name="start">Время начала</param>
 /// <param name="end">Конечное время</param>
 /// <param name="room">Комната</param>
 /// <param name="status">Статус брони </param>
 /// <returns></returns>
 public void Edit(int id, DateTime mainDate, DateTime start, DateTime end,
                  RoomInfo room, OrderRoomStatus status)
 {
     orderRoom = dataContent.OrderRooms.FirstOrDefault(x => x.ID == id);
     if (orderRoom == null)
     {
         throw new ArgumentException("Не найден объект");
     }
     Check(mainDate, start, end, null, room, status, false);
     SetValue(mainDate, start, end, null, room, status, false);
 }
 /// <summary>
 /// Проверка входных данных при создание/редактирование
 /// </summary>
 /// <param name="name">Наименование</param>
 /// <param name="seatsCount">Количество кресел</param>
 private void Check(DateTime mainDate, DateTime start, DateTime end,
                    UserInfo user, RoomInfo room, OrderRoomStatus status, bool isNew = true)
 {
     if (mainDate == null)
     {
         throw new ArgumentException("Не заполнена дата");
     }
     if (start == null)
     {
         throw new ArgumentException("Не заполнено начальное время");
     }
     if (end == null)
     {
         throw new ArgumentException("Не заполнено конечноеое время");
     }
     start = new DateTime(mainDate.Year, mainDate.Month, mainDate.Day,
                          start.Hour, start.Minute, start.Second);
     end = new DateTime(mainDate.Year, mainDate.Month, mainDate.Day,
                        end.Hour, end.Minute, end.Second);
     if (start >= end)
     {
         throw new ArgumentException("Начальное время больше конечноеого времени");
     }
     if (user == null && isNew)
     {
         throw new ArgumentException("Не указан пользователь");
     }
     if (room == null)
     {
         throw new ArgumentException("Не указана комната");
     }
     //if (status == null)
     // throw new ArgumentException("Не указан статус");
     if (dataContent.OrderRooms.
         Count(x => (x.Start <= start && x.End >= start && x.RoomID == room.ID && x.Status == 1) ||
               (x.Start <= end && x.End >= end && x.RoomID == room.ID && x.Status == 1)) > 0)
     {
         throw new ArgumentException("На текущее время уже есть одобренная бронь данной комнаты");
     }
 }
        /// <summary>
        /// Дабавить/редактировать
        /// </summary>
        /// <param name="name">Наименование</param>
        /// <param name="seatsCount">Количество кресел</param>
        /// <param name="isProjector">Наличие проектора</param>
        /// <param name="isMarkerBoard">Наличие маркерной доски</param>
        /// <param name="isBlock">Заблокировать комнату</param>
        /// <param name="isNew">Новый</param>
        private void SetValue(DateTime mainDate, DateTime start, DateTime end,
                              UserInfo user, RoomInfo room, OrderRoomStatus status, bool isNew = true)
        {
            if (isNew)
            {
                orderRoom        = new OrderRoom();
                orderRoom.UserID = user.ID;
            }

            orderRoom.Start = new DateTime(mainDate.Year, mainDate.Month, mainDate.Day,
                                           start.Hour, start.Minute, start.Second);
            orderRoom.End = new DateTime(mainDate.Year, mainDate.Month, mainDate.Day,
                                         end.Hour, end.Minute, end.Second);
            orderRoom.RoomID = room.ID;
            orderRoom.Status = (int)status;

            if (isNew)
            {
                dataContent.OrderRooms.Add(orderRoom);
            }
            dataContent.SaveChanges();
        }