Пример #1
0
        public IActionResult Hotel(HotelViewModel viewModel)
        {
            if (viewModel.PostType == "addReserve")
            {
                var room        = viewModel.NumberOfRoom;
                var roomComfort = _dbContext.HotelInformations.FirstOrDefault(u => u.NumberOfRoom == room).ComfortableOfRoom;
                var price       = _dbContext.HotelInformations.FirstOrDefault(u => u.NumberOfRoom == room).PriceForRoom;
                var countDay    = (viewModel.EndReserv - viewModel.StartReserv).Days + 1;
                var summ        = countDay * price;
                viewModel.SummReserv = summ;

                var reserve = new HotelReservation();

                reserve.NumberOfRoom = viewModel.NumberOfRoom;
                reserve.StartReserv  = viewModel.StartReserv;
                reserve.EndReserv    = viewModel.EndReserv;
                reserve.DateReserv   = DateTime.Now;
                reserve.GuestGuid    = UserID;
                reserve.GuestEmail   = UserEmail;
                reserve.SummReserv   = summ;
                reserve.GuestName    = _dbContext.ClaimsDataUsers.FirstOrDefault(u => u.UserEmail == UserEmail.ToString()).UserName;

                _dbContext.HotelReservations.Add(reserve);

                viewModel.ListAllReserved.Add(reserve);
                viewModel.ListUserReserved.Add(reserve);
                viewModel.RoomReserved = true;
                viewModel.AlertType    = "alertAddReserve";

                string textToEmail = "Уважаемый " + reserve.GuestName + "! Вы успешно забронировали номер! " +
                                     "Информация о Вашей брони: Номер комнаты: " + room + ". Тип номера: " + roomComfort + ". " +
                                     "Дата заезда: " + viewModel.StartReserv + ". Дата отъезда: " + viewModel.EndReserv +
                                     ". Всего по оплате: " + summ + "грн. " +
                                     "Ждем Вас в нашем отеле и желаем счастливого отдыха!";

                // Send Mail
                SendEMail(UserEmail, "Бронирование номера", textToEmail, "party.gif");
            }

            if (viewModel.PostType == "delReserve")
            {
                var reserveForDelete = _dbContext.HotelReservations.FirstOrDefault(u => u.Id == viewModel.IdForDelete);
                if (reserveForDelete != null)
                {
                    _dbContext.HotelReservations.Remove(reserveForDelete);
                    viewModel.AlertType = "alertDelReserve";
                    string guestName   = _dbContext.ClaimsDataUsers.FirstOrDefault(u => u.UserEmail == UserEmail.ToString()).UserName;
                    var    dateStart   = reserveForDelete.StartReserv;
                    var    dateEnd     = reserveForDelete.EndReserv;
                    var    roomNumber  = reserveForDelete.NumberOfRoom;
                    var    roomComfort = _dbContext.HotelInformations.FirstOrDefault(u => u.NumberOfRoom == roomNumber).ComfortableOfRoom;

                    string textToEmail = "Уважаемый " + guestName + "! Уведомляем, что Ваша бронь отеля отменена! " +
                                         "Информация о Вашей отмененной брони: Номер комнаты: " + roomNumber + ". Тип номера: " + roomComfort + ". " +
                                         "Дата заезда: " + dateStart + ". Дата отъезда: " + dateEnd +
                                         ". Надеемся, что еще увидимся с Вами! Всегда ждем Вас в нашем отеле и желаем счастливого отдыха!";

                    // Send Mail
                    SendEMail(UserEmail, "Отмена бронирования номера", textToEmail, "spongebob.gif");
                }
            }

            _dbContext.SaveChanges();

            viewModel = CreateModelForHotel(viewModel);

            return(View("~/Views/Widgets/Hotel.cshtml", viewModel));
        }