public OrdersController(BookingApplication bookingApplication, MenuApplication menuApplication) { if (bookingApplication == null) { throw new ArgumentNullException(nameof(bookingApplication)); } _bookingApp = bookingApplication; if (menuApplication == null) { throw new ArgumentNullException(nameof(menuApplication)); } _menuApp = menuApplication; }
/// <summary> /// Adding a message for user with refuse to the database /// </summary> /// <param name="ApplicationId"></param> public void SendRefusal(int ApplicationId) { BookingApplication Application = Database.BookingApplications.Get(ApplicationId); Message negation = new Message { UserEmail = Application.UserEmail, DateTime = DateTime.Now, MessageText = "Уважаемый пользователь, к несчастью сообщаем, что по заявке №" + ApplicationId + " в наличии нет свободных номеров по заданным критериям на заданные даты." }; Database.Messages.Create(negation); Database.BookingApplications.Delete(ApplicationId); Database.Save(); logger.Log(LogLevel.Info, "На пользователя " + negation.UserEmail + " в базу данных было занесено" + "сообщение с отказом на бронирование."); }
/// <summary> /// Adding a new booking application to the database /// </summary> /// <param name="bookingAppDto"></param> public void SendApplication(BookingApplicationDTO bookingAppDto) { BookingApplication bookingApplication = new BookingApplication { Class = bookingAppDto.Class, Seats = bookingAppDto.Seats, CheckIn = bookingAppDto.CheckIn.Date, CheckOut = bookingAppDto.CheckOut.Date, UserEmail = bookingAppDto.UserEmail, UserId = bookingAppDto.UserId }; Database.BookingApplications.Create(bookingApplication); Database.Save(); logger.Log(LogLevel.Info, "Заявка №" + bookingApplication.Id + " на бронирование номера оформлена и " + "сохранена в базу данных."); }
/// <summary> /// Adding a new booking and a message for user with confirmation to the database /// </summary> /// <param name="bookingDTO"></param> public void BookForManager(BookingDTO bookingDTO) { Room room = Database.Rooms.Get(bookingDTO.RoomId); BookingApplication bookingApplication = Database.BookingApplications.Get(bookingDTO.ApplicationId); if (room == null) { throw new ValidationException("Комната не найдена", ""); } int days = Math.Abs((bookingDTO.CheckIn - bookingDTO.CheckOut).Days); decimal sum = room.Price * days; Booking booking = new Booking { Room = room, Sum = sum, IsPaid = false, CheckIn = bookingDTO.CheckIn.Date, CheckOut = bookingDTO.CheckOut.Date, UserEmail = bookingApplication.UserEmail, UserId = bookingApplication.UserId, Time = DateTime.Now }; Database.Bookings.Create(booking); Database.Save(); Message confirmation = new Message { UserEmail = bookingApplication.UserEmail, DateTime = DateTime.Now, MessageText = "Уважаемый пользователь, на Вас было оформлено бронирование №" + booking.Id + ".Проверьте " + "его во вкладке «Мои бронирования». Бронирование должно быть оплачено в течении 48 часов! В противном случае " + "бронирование снимается." }; Database.Messages.Create(confirmation); Database.BookingApplications.Delete(bookingApplication.Id); Database.Save(); logger.Log(LogLevel.Info, "На пользователя " + booking.UserEmail + " в базу данных было занесено новое " + "бронирование №" + booking.Id + "."); }
public BookingService(BookingApplication bookingApplication) { _bookingApplication = bookingApplication; }