Example #1
0
        /// <summary>
        /// Вспомогательный метод для освобождение номеров
        /// </summary>
        /// <param name="number">Номер который освободить</param>
        /// <returns>Освобожденный номер</returns>
        public static HotelNumber ReleaseNumber(HotelNumber number)
        {
            try
            {
                if (IsContains(number))
                {
                    HotelNumber existingModel = EntityConnection.HotelNumbers.Where(x => x.HotelID == number.HotelID && x.RoomIndex == number.RoomIndex && x.FloorIndex == number.FloorIndex).First();

                    if (existingModel != null)
                    {
                        EntityConnection.Child_Guest.RemoveRange(existingModel.Guest.Child_Guest);
                        EntityConnection.Guests.Remove(existingModel.Guest);
                        existingModel.Guest   = null;
                        existingModel.GuestID = null;
                        existingModel.IsEmpty = true;
                        return(existingModel);
                    }
                    else
                    {
                        throw new MyException("HotelWorker.HotelCreator.AddOrUpdateHotelNumber()");
                    }
                }
                return(null);
            }
            finally
            {
                EntityConnection.SaveChanges();
            }
        }
Example #2
0
        public static HotelNumber AddOrUpdate(HotelNumber value)
        {
            if (value == null)
            {
                throw new NullReferenceException("HotelFurniture value is null");
            }
            try
            {
                if (IsContains(value)) //UPDATE
                {
                    HotelNumber existingModel = EntityConnection.HotelNumbers.Where(x => x.RoomIndex == value.RoomIndex && x.FloorIndex == value.FloorIndex && x.HotelID == value.HotelID).First();

                    if (existingModel == null)
                    {
                        throw new NullReferenceException("existingModel value is null");
                    }
                    else
                    {
                        return(existingModel = value);
                    }
                }
                else // ADD
                {
                    return(EntityConnection.HotelNumbers.Add(value));
                }
            }
            finally
            {
                EntityConnection.SaveChanges();
            }
        }
Example #3
0
        /// <summary>
        /// Конструктор
        /// </summary>
        /// <param name="number"></param>
        public Options_HotelNumber(HotelNumber number)
        {
            InitializeComponent();

            this.HotelNumber = number;
            // Обновление
            UpdateCollectionOfRoomTypes();

            if (number == null)
            {
                this.HotelNumber = new HotelNumber
                {
                    RoomType = new RoomType()
                };
            }
            else
            {
                this.Label_FloorRoom.Text             = $"{number.FloorIndex}/{number.RoomIndex}";
                this.TextBox_Price.Text               = number.Price.ToString();
                this.NumericUpDown_BedCount.Value     = number.BedCount;
                this.ComboBox_RoomTypes.Text          = number.Comfortable;
                this.ComboBox_RoomTypes.SelectedIndex = GetIndex(number.Comfortable);
                this.TextBox_Furniture.Text           = number.Furniture;
                this.NumericUpDown_BedCount.Value     = number.BedCount;
                UpdateDataGridView();
            }
        }
Example #4
0
        /// <summary>
        /// Проверка на существование
        /// </summary>
        /// <param name="value">Номер отеля</param>
        /// <returns>true-существует, false-нет</returns>
        public static bool IsContains(HotelNumber value)
        {
            if (EntityConnection.HotelNumbers.AsEnumerable().Contains(value))
            {
                return(true);
            }

            return(false);
        }
Example #5
0
 /// <summary>
 /// Обновить значение в словаре
 /// </summary>
 /// <param name="floor">Этаж который надо обновить</param>
 /// <param name="roomIndex">Комната которую надо обновить</param>
 /// <param name="newValue">Комната</param>
 private void UpdateDictionaryValue(short floor, short roomIndex, HotelNumber newValue)
 {
     for (int i = 0; i < this.dictFloors[floor].Count; i++)
     {
         if (dictFloors[floor][i].RoomIndex == roomIndex)
         {
             dictFloors[floor][i] = newValue;
             break;
         }
     }
 }
Example #6
0
 /// <summary>
 /// Проверка на существование элемента в коллекции
 /// </summary>
 /// <param name="number">Номер</param>
 /// <param name="collection">Список номеров</param>
 /// <returns>Есть ли номер в коллекции номеров</returns>
 private static bool IsExists(HotelNumber number, ICollection <HotelNumber> collection)
 {
     foreach (var item in collection)
     {
         if (item.HotelID == number.HotelID && item.RoomIndex == number.RoomIndex && item.FloorIndex == number.FloorIndex)
         {
             return(true);
         }
     }
     return(false);
 }
Example #7
0
        /// <summary>
        /// Добавить гостя в отель по определенному номеру
        /// </summary>
        /// <param name="hotel"></param>
        /// <param name="number"></param>
        /// <param name="guest"></param>
        public static void AddGuestToHotel(HotelInfo hotel, HotelNumber number, Guest guest)
        {
            if (hotel == null || guest == null)
            {
                throw new NullReferenceException("hotel or guest is null");
            }

            number.IsEmpty = false;
            number.Guest   = guest;
            if (!IsContains(guest))
            {
                hotel.Guests.Add(guest);
            }

            EntityConnection.SaveChanges();
        }
Example #8
0
 /// <summary>
 /// Освободить номер
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void NumberFreeToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (ListViewHotel.SelectedIndices.Count > 0)
     {
         var item = this.ListViewHotel.SelectedItems[0];
         if (item != null)
         {
             //Получаем номер
             HotelNumber number = HotelCreator.GetHotelNumber(this.hotelInfo.Id, GetIndex(item.Group.Header), GetIndex(item.Text));
             if (number != null && !number.IsEmpty)
             {
                 //Обновляем
                 UpdateDictionaryValue(number.FloorIndex, number.RoomIndex, HotelCreator.ReleaseNumber(number));
                 ListViewHotel.Items[this.ListViewHotel.SelectedIndices[0]].ImageIndex = 0;
             }
         }
     }
 }
Example #9
0
        /// <summary>
        /// Комната по умолчанию
        /// </summary>
        /// <param name="floor">Этаж</param>
        /// <param name="bed">Номер комнат</param>
        /// <returns></returns>
        public static HotelNumber CreateDefaultNumber(short floor, byte bed = 1)
        {
            HotelNumber number = new HotelNumber
            {
                RoomIndex  = 1,
                FloorIndex = floor,
                BedCount   = bed,
                IsEmpty    = true,
                Price      = 100
            };

            // Если есть ур. комфорта по умолчанию, то присваиваем значение, нет создаем
            if (EntityConnection.RoomTypes.Count() > 0)
            {
                number.RoomType    = EntityConnection.RoomTypes.First();
                number.Comfortable = number.RoomType.Level;
            }
            else
            {
                number.RoomType    = CreateDefaultRoomType();
                number.Comfortable = number.RoomType.Level;
            }
            return(number);
        }