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)); }
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 }); }
public ActionResult <RetornoConsulta <LivroModel> > GetLivro([FromQuery] LivroBuscaModel livroModelConsulta) { return(_getLivrosQuery.Execute(livroModelConsulta)); }