public async Task <PagedDto <ContactDetailsDto> > GetContacts(GetPagedItemsDto dto) { var query = new GetContactsQuery(dto); var result = await _mediator.Send(query); return(result); }
public GetContactsQuery(GetPagedItemsDto dto) { Dto = dto; }
public static async Task <PagedDto <TDest> > GetPagedResultOf <TSource, TDest>(this IQueryable <TSource> query, GetPagedItemsDto paginationSettings, IMapper mapper, CancellationToken cancellationToken) { var result = new PagedDto <TDest>() { Page = paginationSettings.Page, PageSize = paginationSettings.PageSize, TotalItems = await query.CountAsync(cancellationToken) }; var skip = (result.Page - 1) * result.PageSize; var itemsOfPage = await query.Skip(skip).Take(result.PageSize).ToListAsync(cancellationToken); result.Items = mapper.Map <List <TDest> >(itemsOfPage); return(result); }
public async Task <IActionResult> GetContacts([FromQuery] GetPagedItemsDto dto) { var result = await _contactService.GetContacts(dto); return(Ok(result)); }