Example #1
0
        public async Task <ActionResult <List <EmprestimoResponse> > > Pesquisar([FromQuery] PesquisaEmprestimoRequest pesquisaResquest)
        {
            var amigos = await _emprestimoServico.PesquisarEmprestimosAsync(pesquisaResquest).ConfigureAwait(false);

            return(Ok(amigos));
        }
Example #2
0
        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)));
        }