public async Task <IEnumerable <RoomModel> > AvailableRoomsAsync(AvailableRoomsCommand command) { var rooms = await _repository.RetrieveAllAsync(null, p => p.Sessions); var roomsModels = new List <RoomModel>(); foreach (var room in rooms) { if (room.Sessions.Count() == 0 || room.Sessions.Select(p => IsDateOverlaping(command.MovieDuration, p.Date, command.Date)).All(p => p == false)) { roomsModels.Add(_mapper.Map <RoomModel>(room)); } } return(roomsModels); }
public async Task <IActionResult> AvailableRoomsAsync(AvailableRoomsCommand command) { return(Ok(await _roomService.AvailableRoomsAsync(command))); }