コード例 #1
0
        public async Task <PaginatedList <AppointmentView> > Handle(ListAppointments request, CancellationToken cancellationToken)
        {
            var query = _db.AppointmentSnapshots
                        .AsNoTracking()
                        .Select(snapshot => new AppointmentView
            {
                Id                      = snapshot.Id,
                ScheduledOn             = snapshot.ScheduledOn,
                AttendingVeterinarianId = snapshot.AttendingVeterinarianId,
                RejectionReason         = snapshot.RejectionReason,
                CancellationReason      = snapshot.CancellationReason,
                Owner                   = snapshot.Owner,
                Pet                     = snapshot.Pet,
                ReasonForVisit          = snapshot.ReasonForVisit,
                State                   = snapshot.State.ToString()
            })
                        .OrderBy(x => x.ScheduledOn);

            var count = await query.CountAsync(cancellationToken);

            var page = await query.Paginate(request.PageIndex, request.PageSize)
                       .ToListAsync(cancellationToken);

            return(new PaginatedList <AppointmentView>(page, count, request.PageIndex, request.PageSize));
        }
コード例 #2
0
        public async Task <ActionResult <Page <AppointmentView> > > ListAppointments([FromQuery] ListAppointments query)
        {
            var result = await _mediator.Send(query);

            return(result.ToPage());
        }