Пример #1
0
        private IQueryable <Livro> RetornaConsultaComFiltros(LivroBuscaModel livroModelConsulta)
        {
            var Predicate = PredicateBuilder.True <Livro>();

            if (!string.IsNullOrEmpty(livroModelConsulta.ISBN))
            {
                Predicate = Predicate.And(p => p.ISBN == livroModelConsulta.ISBN);
            }

            if (!string.IsNullOrEmpty(livroModelConsulta.Nome))
            {
                Predicate = Predicate.And(p => p.Nome.Contains(livroModelConsulta.Nome));
            }

            if (!string.IsNullOrEmpty(livroModelConsulta.Autor))
            {
                Predicate = Predicate.And(p => p.Autor.Contains(livroModelConsulta.Autor));
            }

            if (livroModelConsulta.Preco > 0)
            {
                Predicate = Predicate.And(p => p.Preco == livroModelConsulta.Preco);
            }

            return(_db.GetAll().Where(Predicate));
        }
Пример #2
0
        public RetornoConsulta <LivroModel> Execute(LivroBuscaModel livroModelConsulta)
        {
            var Consulta    = RetornaConsultaComFiltros(livroModelConsulta);
            var totalLinhas = Consulta.Count();

            Consulta = FiltrosHelper.OrdenacaoPaginacao(Consulta, livroModelConsulta);

            return(new RetornoConsulta <LivroModel>
            {
                Data = Consulta.Select(x => new LivroModel()
                {
                    ISBN = x.ISBN,
                    Autor = x.Autor,
                    Nome = x.Nome,
                    Preco = x.Preco,
                    DataPublicacao = x.DataPublicacao,
                    Capa = x.Capa
                }).ToList(),
                TotalRows = totalLinhas
            });
        }
Пример #3
0
 public ActionResult <RetornoConsulta <LivroModel> > GetLivro([FromQuery] LivroBuscaModel livroModelConsulta)
 {
     return(_getLivrosQuery.Execute(livroModelConsulta));
 }