public JsonResult ProcesarBusqueda(string sidx, string sord, int page, int rows, int?id, TipoActividadEspecialEnum?filtroTipoActividad, DateTime?filtroFechaDesde, DateTime?filtroFechaHasta, string filtroNombreDocente, string filtroApellidoDocente, bool filtroDadosDeBaja) { Func <ActividadEspecialModel, IComparable> funcOrden = sidx == "Fecha" ? x => x.Fecha : sidx == "HoraDesde" ? x => x.HoraDesde : sidx == "HoraHasta" ? x => x.HoraHasta : (Func <ActividadEspecialModel, IComparable>)(x => x.Id); var registros = Rule.ActividadGetByFiltros(filtroFechaDesde, filtroFechaHasta, filtroApellidoDocente, filtroNombreDocente, filtroTipoActividad, filtroDadosDeBaja, _idEscuela); //var registros = Harcode(filtroDadosDeBaja); if (sord == "asc") { registros = registros.OrderBy(funcOrden).ToList(); } else { registros = registros.OrderByDescending(funcOrden).ToList(); } int totalRegistros = registros.Count(); int totalPages = (int)Math.Ceiling((decimal)totalRegistros / (decimal)rows); registros = registros.Skip((page - 1) * rows).Take(rows).ToList(); var jsonData = new { total = totalPages, page = page, records = totalRegistros, rows = from a in registros select new { cell = new string[] { a.Id.ToString(), a.Fecha.Value.ToString("dd/MM/yyyy"), a.HoraDesde.ToString(), a.HoraHasta.ToString(), a.Descripcion, a.Tipo.ToString().Replace('_', ' '), a.FechaBaja.HasValue? a.FechaBaja.Value.ToString("dd/MM/yyyy"): "-", } } }; return(Json(jsonData, JsonRequestBehavior.AllowGet)); }