Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }