private static IQueryable <T> ApplySort <T>(IQueryable <T> query, GijgoGridOptions options) where T : class { if (!string.IsNullOrEmpty(options.sortBy) && !string.IsNullOrEmpty(options.direction)) { return(query.OrderBy(options.direction.Trim().ToLower() == "asc" ? options.sortBy : $"{options.sortBy} desc")); } return(query.OrderBy("Id desc")); }
private static IQueryable <T> ApplySearch <T>(IQueryable <T> query, GijgoGridOptions options) where T : class { if (!string.IsNullOrWhiteSpace(options.searchValue)) { return(query.Where($"{options.searchField}.Contains(@0)", options.searchValue)); } return(query); }
public virtual JsonResult GetForGrid(GijgoGridOptions options) { var query = Context.Set <TModel>().AsQueryable(); query = GijgoGridHelper.ApplyOptionsToQuery(query, options, out int total); var records = VMM.MapForGrid(query.ToList()); return(Json(new { records, total }, JsonRequestBehavior.AllowGet)); }
public static IQueryable <T> ApplyOptionsToQuery <T>(IQueryable <T> query, GijgoGridOptions options, out int total) where T : class { query = ApplyFilters(query, options); query = ApplySearch(query, options); query = ApplySort(query, options); total = query.Count(); query = ApplyPageAndLimit(query, options); return(query); }
private static IQueryable <T> ApplyPageAndLimit <T>(IQueryable <T> query, GijgoGridOptions options) where T : class { if (options.page.HasValue && options.limit.HasValue) { var start = (options.page.Value - 1) * options.limit.Value; return(query.Skip(start).Take(options.limit.Value)); } return(query); }
public JsonResult GetByEquipoId(GijgoGridOptions options, int parentId) { var query = Context.JugadorEquipos .Where($"EquipoId == {parentId}") .AsQueryable(); //query = GijgoGridHelper.ApplyOptionsToQuery(query, options, out int total); var records = VMM.MapForImprimirJugadores(query.ToList()); return(Json(new { records, total = records.Count }, JsonRequestBehavior.AllowGet)); }
public JsonResult DelegadosGrid(GijgoGridOptions options, int parentId) { var query = Context.Delegados .Where($"ClubId == {parentId}") .AsQueryable(); query = GijgoGridHelper.ApplyOptionsToQuery(query, options, out int total); var records = VMM.MapForDelegadosGrid(query.ToList()); return(Json(new { records, total }, JsonRequestBehavior.AllowGet)); }
private static IQueryable <T> ApplyFilters <T>(IQueryable <T> query, GijgoGridOptions options) where T : class { if (options.filters != null) { foreach (var filter in options.filters) { query = query.Where($"{filter.field} {filter.@operator} {filter.value}").AsQueryable(); } } return(query); }