Exemplo n.º 1
0
 public ActionResult <IEnumerable <Livro> > PostByFilter([FromBody] LivroFiltroDTO filtro)
 {
     try
     {
         var result = _livroService.GetLivrosPorFiltro(filtro);
         return(Ok(result));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex));
     }
 }
Exemplo n.º 2
0
        public List <Livro> GetLivrosPorFiltro(LivroFiltroDTO filtro)
        {
            var query = _livroRepository.FilterByCondition(x => x.Id > 0);

            if (filtro.ISBN > 0)
            {
                query = query.Where(x => x.ISBN == filtro.ISBN);
            }

            if (!string.IsNullOrEmpty(filtro.Nome))
            {
                query = query.Where(x => x.Nome.Contains(filtro.Nome));
            }

            if (!string.IsNullOrEmpty(filtro.Autor))
            {
                query = query.Where(x => x.Autor.Contains(filtro.Autor));
            }
            if (filtro.Preco > 0)
            {
                query = query.Where(x => x.Preco == filtro.Preco);
            }

            if (filtro.SortBy != null && filtro.SortBy.ToUpper() == "ISBN")
            {
                return(query.OrderBy(o => o.ISBN).ToList());
            }
            else if (filtro.SortBy != null && filtro.SortBy.ToUpper() == "NOME")
            {
                return(query.OrderBy(o => o.Nome).ToList());
            }
            else if (filtro.SortBy != null && filtro.SortBy.ToUpper() == "AUTOR")
            {
                return(query.OrderBy(o => o.Autor).ToList());
            }
            else if (filtro.SortBy != null && filtro.SortBy.ToUpper() == "PRECO")
            {
                return(query.OrderBy(o => o.Preco).ToList());
            }
            else if (filtro.SortBy != null && filtro.SortBy.ToUpper() == "DATAPUBLICACAO")
            {
                return(query.OrderBy(o => o.DataPublicacao).ToList());
            }


            return(query.ToList());
        }