public async Task <IEnumerable <ClienteDTO> > PesquisarAsync(FiltrosDaPesquisaDeClientesDTO filtros) { var query = _clientsContext.Clientes.AsQueryable(); if (!string.IsNullOrWhiteSpace(filtros.Nome)) { query = query.Where(x => x.Nome.ToUpper().Contains(filtros.Nome.ToUpper())); } if (filtros.DataDeNascimentoDe.HasValue) { query = query.Where(x => x.DataDeNascimento >= filtros.DataDeNascimentoDe); } if (filtros.DataDeNascimentoAte.HasValue) { query = query.Where(x => x.DataDeNascimento <= filtros.DataDeNascimentoAte); } if (filtros.SalarioDe.HasValue) { query = query.Where(x => x.Salario >= filtros.SalarioDe); } if (filtros.SalarioAte.HasValue) { query = query.Where(x => x.Salario <= filtros.SalarioAte); } return(await query.Select(x => new ClienteDTO { Id = x.Id, Nome = x.Nome, DataDeNascimento = x.DataDeNascimento, Salario = x.Salario }).ToListAsync() .ConfigureAwait(false)); }
public async Task <IActionResult> GetAsync([FromQuery] FiltrosDaPesquisaDeClientesDTO filtros) { var clientes = await _servicoDePesquisaDeClientes.PesquisarAsync(filtros).ConfigureAwait(false); return(Ok(clientes)); }
public Task <IEnumerable <ClienteDTO> > PesquisarAsync(FiltrosDaPesquisaDeClientesDTO filtros) { return(_clienteRepository.PesquisarAsync(filtros)); }