예제 #1
0
        public async Task <BookingByGuestByHotelBindingModel> AddBookingAsync([FromBody][Required] BookingByGuestByHotelBindingModel bookingQuery)
        {
            IEnumerable <Guest> resultGuests = await UnitOfWork.Guest.GetByIdAsync(bookingQuery.GuestId.Value);

            List <Guest> guests = resultGuests.ToList();

            if (!guests.Any())
            {
                throw new Exception("Provided guest does not exist");
            }
            IEnumerable <Room> freeRooms = await GetFreeRoomsAsync(bookingQuery);

            var roomToBook             = freeRooms.First();
            RoomBookingByGuest booking = new RoomBookingByGuest()
            {
                HotelId          = roomToBook.HotelId,
                Type             = roomToBook.Type,
                Number           = roomToBook.Number,
                GuestId          = bookingQuery.GuestId.Value,
                StartReserveTime = bookingQuery.StartReserveTime,
                EndReserveTime   = bookingQuery.EndReserveTime
            };
            await UnitOfWork.RoomBooking.AddAsync(booking);

            bookingQuery.BookingId = roomToBook.Id;
            return(bookingQuery);
        }
예제 #2
0
 public async Task AddBookingAsync([FromBody][Required] BookingByGuestByHotelBindingModel bookingQuery)
 {
     await hotelDAO.AddBookingAsync(bookingQuery.GuestId, bookingQuery.HotelId, bookingQuery.StartReserveTime, bookingQuery.EndReserveTime, bookingQuery.Type);
 }