public async Task <ActionResult <IEnumerable <RoomDataModelForReservation> > > GetForReservationnAsync([FromBody] RoomsForReservationModel roomsForReservationModel)
 {
     return(Ok(await _roomService.GetForReservationAsync(roomsForReservationModel)));
 }
Exemple #2
0
 public async Task <IEnumerable <RoomDataModelForReservation> > GetForReservationAsync(RoomsForReservationModel roomForReservationModel)
 {
     if (roomForReservationModel.DateFrom > roomForReservationModel.DateTo)
     {
         return(null);
     }
     else
     {
         return(await _roomRepository.GetRoomsForReservationAsync(roomForReservationModel));
     }
 }
Exemple #3
0
        public async Task <IEnumerable <RoomDataModelForReservation> > GetRoomsForReservationAsync(RoomsForReservationModel roomForReservationModel)
        {
            List <Room> roomsList = await(from rooms in DBContext.Rooms.Include(r => r.Reservations).ThenInclude(r => r.ReservationInterval)
                                          where !rooms.Reservations.Where(reserv => Helpers.CheckDateOverlaps(reserv.DateFrom, reserv.DateTo, roomForReservationModel.DateFrom, roomForReservationModel.DateTo)).Any()
                                          where rooms.NumberOfPeople >= roomForReservationModel.Size
                                          where Helpers.CheckDateInside(
                                              roomForReservationModel.DateFrom.Date.AddHours(rooms.Availability.HoursFrom),
                                              roomForReservationModel.DateTo.Date.AddHours(rooms.Availability.HoursTo),
                                              roomForReservationModel.DateFrom,
                                              roomForReservationModel.DateTo)
                                          where roomForReservationModel.DateFrom.Date == roomForReservationModel.DateTo.Date
                                          select rooms
                                          ).ToListAsync();

            return(roomsList.Where(rooms => !rooms.Reservations.Where(reserv => Helpers.CheckIntervalReservation(reserv.DateFrom,
                                                                                                                 reserv.DateTo,
                                                                                                                 roomForReservationModel.DateFrom,
                                                                                                                 roomForReservationModel.DateTo,
                                                                                                                 reserv.ReservationInterval?.Time,
                                                                                                                 reserv.CyclicReservation))
                                   .Any())
                   .Select(r => new RoomDataModelForReservation
            {
                Id = r.Id,
                Name = r.Name
            }));
        }