コード例 #1
0
        public IHttpActionResult PostGet(bool paginado, RequestPaginado param)
        {
            if (paginado == false) // Si no se manda paginado en true entonces obtiene todos los datos sin paginar
            {
                return(Get());
            }

            var listaUsuarios = _usuarioService.ObtenListaUsuarios();

            var totalUs = listaUsuarios.Count;

            listaUsuarios = DataTableUtils.FiltrarPorBusqueda(param, listaUsuarios);

            listaUsuarios = DataTableUtils.Ordenar(param, listaUsuarios);

            var datosPagina = listaUsuarios
                              .Skip(param.Start)
                              .Take(param.Length)
                              .ToList();

            var result = new ResultadoPaginado <Usuario>()
            {
                Data            = datosPagina,
                Draw            = param.Draw,
                RecordsFiltered = listaUsuarios.Count,
                RecordsTotal    = totalUs
            };

            return(Ok(result));
        }
コード例 #2
0
        public static ResultadoPaginado <T> GetPaged <T>(this IQueryable <T> query, int page, int pageSize) where T : class
        {
            var result = new ResultadoPaginado <T>();

            result.pagina_atual    = page;
            result.tamanho_pagina  = pageSize;
            result.contagem_linhas = query.Count();


            var pageCount = (double)result.contagem_linhas / pageSize;

            result.contagem_paginas = (int)Math.Ceiling(pageCount);

            var skip = (page - 1) * pageSize;

            result.resultados = query.Skip(skip).Take(pageSize).ToList();

            return(result);
        }