예제 #1
0
        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());
        }
예제 #2
0
        public async Task <ActionResult <List <SlimBooking> > > GetList([FromQuery] BookingsListFilter filters)
        {
            var agent = await _agentContextService.GetAgent();

            return(await _bookingInfoService.Get(filters, agent));
        }