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); }
public async Task AddBookingAsync([FromBody][Required] BookingByGuestByHotelBindingModel bookingQuery) { await hotelDAO.AddBookingAsync(bookingQuery.GuestId, bookingQuery.HotelId, bookingQuery.StartReserveTime, bookingQuery.EndReserveTime, bookingQuery.Type); }