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)); }
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); }