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));
        }