Ejemplo n.º 1
0
        public static LivroPaginado From(LivroPaginacao parametros, IQueryable <LivroApi> origem)
        {
            if (parametros == null)
            {
                parametros = new LivroPaginacao();
            }
            int totalItens = origem.Count();
            //260 itens / 25 itens por página >> 10,4 e seu teto é 11.
            int  totalPaginas      = (int)Math.Ceiling(totalItens / (double)parametros.Tamanho);
            bool temPaginaAnterior = (parametros.Pagina > 1);
            bool temProximaPagina  = (parametros.Pagina < totalPaginas);

            return(new LivroPaginado
            {
                Total = totalItens,
                TotalPaginas = totalPaginas,
                TamanhoPagina = parametros.Tamanho,
                NumeroPagina = parametros.Pagina,
                Resultado = origem.Skip(parametros.QtdeParaDescartar).Take(parametros.Tamanho).ToList(),
                Anterior = temPaginaAnterior
                    ? $"livros?pagina={parametros.Pagina-1}&tamanho={parametros.Tamanho}"
                    : "",
                Proximo = temProximaPagina
                    ? $"livros?pagina={parametros.Pagina+1}&tamanho={parametros.Tamanho}"
                    : ""
            });
        }
Ejemplo n.º 2
0
        public static LivroPaginado ToLivroPaginado(this IQueryable <LivroApi> query, LivroPaginacao paginacao)
        {
            var totalItens   = query.Count();
            var totalPaginas = (int)Math.Ceiling(totalItens / (double)paginacao.Tamanho);

            return(new LivroPaginado
            {
                Total = totalItens,
                TotalPaginas = totalPaginas,
                NumeroPagina = paginacao.Pagina,
                TamanhoPagina = paginacao.Tamanho,
                Resultando = query
                             .Skip(paginacao.Tamanho * (paginacao.Pagina - 1))
                             .Take(paginacao.Tamanho)
                             .ToList(),
                Anterior = (paginacao.Pagina > 1 ?
                            $"livros?tamanho={paginacao.Pagina-1}&pagina={paginacao.Tamanho}" : ""),
                Proximo = (paginacao.Pagina < totalPaginas ?
                           $"livros?tamanho={paginacao.Pagina+1}&pagina={paginacao.Tamanho}" : ""),
            });
        }