public async Task <ActionResult <List <EmprestimoResponse> > > Pesquisar([FromQuery] PesquisaEmprestimoRequest pesquisaResquest) { var amigos = await _emprestimoServico.PesquisarEmprestimosAsync(pesquisaResquest).ConfigureAwait(false); return(Ok(amigos)); }
public async Task <ListaPaginavel <EmprestimoResponse> > PesquisarEmprestimosAsync(PesquisaEmprestimoRequest pesquisaResquest) { IQueryable <Emprestimo> query; query = _emprestimoRepositorio.ListarTodos().Include(i => i.ItensEmprestados).ThenInclude(j => j.Jogo).Include(a => a.Amigo); if (pesquisaResquest.AmigoId != null) { query = query.Where(x => x.AmigoId == pesquisaResquest.AmigoId); } if (pesquisaResquest.JogoId != null) { query = query.Where(x => x.ItensEmprestados.Any(item => item.JogoId == pesquisaResquest.JogoId)); } if (pesquisaResquest.DataEmprestimo != null) { query = query.Where(x => x.DataEmprestimo == pesquisaResquest.DataEmprestimo); } var emprestimosResponse = query.ParaListaPaginavel(pesquisaResquest.IndiceDePagina, pesquisaResquest.RegistrosPorPagina, pesquisaResquest.Ordenacao, x => x.DataEmprestimo); return(await Task.FromResult(_mapper.Map <ListaPaginavel <EmprestimoResponse> >(emprestimosResponse))); }