public IActionResult Get(string pesquisa, int numeroPagina, int numeroItensPorPagina)
        {
            try
            {
                IQueryable <Livro> lista = _serviceLivro.Get();

                if (!String.IsNullOrEmpty(pesquisa))
                {
                    lista = lista.Where(x => x.Titulo.ToUpper().Contains(pesquisa.ToUpper()));
                }

                LivroPaginacao livroPaginacao = new LivroPaginacao();
                livroPaginacao.NumeroPagina         = numeroPagina;
                livroPaginacao.NumeroItensPorPagina = numeroItensPorPagina;
                livroPaginacao.Total = (int)Math.Ceiling((lista.Count() / (double)numeroItensPorPagina));

                lista = lista.Skip((numeroPagina - 1) * numeroItensPorPagina).Take(numeroItensPorPagina);

                livroPaginacao.Livros = lista.OrderBy(x => x.Titulo).ToList();

                return(new ObjectResult(livroPaginacao));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
        public IActionResult ListaDeLivros([FromQuery] LivroFiltro filtro,
                                           [FromQuery] LivroOrdem ordem,
                                           [FromQuery] LivroPaginacao paginacao)
        {
            var lLivroPaginado = _repo.All
                                 .AplicaFiltro(filtro)
                                 .AplicaOrdem(ordem)
                                 .Select(l => l.ToApi())
                                 .ToLivroPaginado(paginacao);

            return(Ok(lLivroPaginado));
        }
Beispiel #3
0
        public IActionResult ListaDeLivros(
            [FromQuery] LivroFiltro filtro,
            [FromQuery] LivroOrdem ordem,
            [FromQuery] LivroPaginacao paginacao)
        {
            var livroPaginado = _repo.All
                                .AplicaFiltro(filtro)
                                .AplicaOrdem(ordem)          // http://localhost:6000/api/v2.0/Livros?lista=ParaLer&OrdenarPor=id asc
                                .Select(x => x.ToApi())
                                .ToLivroPaginado(paginacao); // http://localhost:6000/api/v2.0/Livros?tamanho=3&paginacao=1

            return(Ok(livroPaginado));
        }
        public IActionResult ListaDeLivros(
            [FromQuery][SwaggerParameter(Description = "Filtro indicado por autor, titulo, subtitulo e/ou nome da lista", Required = false)] LivroFiltro filtro,
            [FromQuery][SwaggerParameter(Description = "Parâmetro passado para ordenar a lista: autor, titulo, subtitulo e/ou lista", Required = false)] LivroOrdem ordem,
            [FromQuery][SwaggerParameter(Description = "Número de itens por página e qual a página", Required = false)] LivroPaginacao paginacao)
        {
            var livros = _repo.All
                         .AplicaFiltro(filtro)
                         .AplicaOrdem(ordem)
                         .Select(l => l.ToApi())
                         .ToLivroPaginado(paginacao);

            return(Ok(livros));
        }
Beispiel #5
0
        public IActionResult ListaDeLivros(
            [FromQuery] LivroFiltro filtro,
            [FromQuery] LivroOrdem ordem,
            [FromQuery] LivroPaginacao paginacao)
        {
            var livrosPaginados = _repo.All
                                  .AplicaFiltro(filtro)
                                  .AplicaOrdem(ordem)
                                  .Select(livro => livro.ToApi())
                                  .ToPaginacao(paginacao);

            if (livrosPaginados == null)
            {
                return(NotFound());
            }
            return(Ok(livrosPaginados));
        }
        public IActionResult ListaDeLivros(
            [FromQuery] LivroFiltro filtro,
            [FromQuery] LivroOrdem ordem,
            [FromQuery] LivroPaginacao paginacao)
        {
            var lista = _repo.All
                        .AplicaFiltro(filtro)
                        .AplicaOrdenacao(ordem)
                        .Select(l => l.ToApi());

            var listaPaginada = LivroPaginado.From(paginacao, lista);

            if (listaPaginada.Resultado.Count == 0)
            {
                return(NotFound());
            }
            return(Ok(listaPaginada));
        }
Beispiel #7
0
        public IActionResult RecuperarTodos(
            [FromQuery] LivroFiltro filtro,
            [FromQuery] LivroOrdem ordem,
            [FromQuery] LivroPaginacao paginacao)
        {
            var livroPaginado = _repo
                                .All
                                .AplicarFiltro(filtro)
                                .AplicarOrdem(ordem)
                                .Select(x => x.ToApi())
                                .ToLivroPaginado(paginacao);

            if (livroPaginado == null)
            {
                return(NotFound());
            }

            return(Ok(livroPaginado));
        }
        public async Task <IActionResult> ListaLivrosPagina(string pesquisa, int numeroPagina, int numeroItensPorPagina)
        {
            LivroPaginacao livroPaginacao = await _api.GetLivroPaginaAsync(pesquisa, numeroPagina, numeroItensPorPagina);

            return(Json(livroPaginacao));
        }
Beispiel #9
0
        public IActionResult Get([FromQuery] LivroFiltro filtro, [FromQuery] LivroOrdem ordem, [FromQuery] LivroPaginacao paginacao)
        {
            Paginacao livroPaginado = _repository
                                      .All
                                      .Filtrar(filtro)
                                      .Ordenar(ordem)
                                      .Select(l => l.ToApi())
                                      .Paginar(paginacao);

            if (livroPaginado is null)
            {
                return(NotFound());
            }

            return(Ok(livroPaginado));
        }