public async Task <PagedList <Client> > GetClientsAsync(ClientsParameters parameters) { var clients = _context.Clients as IQueryable <Client>; if (!string.IsNullOrWhiteSpace(parameters.Nom)) { clients = clients.Where(c => c.Nom == parameters.Nom); } if (!string.IsNullOrWhiteSpace(parameters.Prenom)) { clients = clients.Where(c => c.Prenom == parameters.Prenom); } if (!string.IsNullOrWhiteSpace(parameters.Searching)) { var searchingTextFormatted = parameters.Searching.Trim().ToLower(); clients = clients.Where(c => c.Nom.ToLower().Contains(searchingTextFormatted) || c.Prenom.Contains(searchingTextFormatted)); } clients = !string.IsNullOrWhiteSpace(parameters.OrderBy) ? clients.ApplySort(parameters.OrderBy) : clients.OrderBy(c => c.Nom); return(PagedList <Client> .ToPagedList(await clients.ToListAsync(), parameters.PageNumber, parameters.PageSize)); }
public async Task <IActionResult> GetClients([FromQuery] ClientsParameters clientsParameters) { var clients = await _clientRepository.GetClientsAsync(clientsParameters); var clientDtos = _mapper.Map <IEnumerable <ClientDto> >(clients); Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(clients.GetMetadata())); return(Ok(clientDtos)); }