public async Task <List <SlimBooking> > Get(BookingsListFilter filter, AgentContext agent) { var query = from booking in _context.Bookings where booking.AgentId == agent.AgentId && booking.AgencyId == agent.AgencyId select booking; if (filter.CreatedFrom is not null) { query = query.Where(b => b.Created >= filter.CreatedFrom); } if (filter.CreatedTo is not null) { query = query.Where(b => b.Created <= filter.CreatedTo); } if (filter.CheckinFrom is not null) { query = query.Where(b => b.CheckInDate >= filter.CheckinFrom); } if (filter.CheckinTo is not null) { query = query.Where(b => b.CheckInDate <= filter.CheckinTo); } query = filter.OrderBy switch { BookingListOrderTypes.Created => query.OrderBy(b => b.Created), BookingListOrderTypes.Checkin => query.OrderBy(b => b.CheckInDate), BookingListOrderTypes.Deadline => query.OrderBy(b => b.DeadlineDate), _ => query }; var bookings = await query.ToListAsync(); return(bookings.SlimFromEdoModels()); }
public async Task <ActionResult <List <SlimBooking> > > GetList([FromQuery] BookingsListFilter filters) { var agent = await _agentContextService.GetAgent(); return(await _bookingInfoService.Get(filters, agent)); }