public static List <GroupFilterSortingCriteria> Create(int GroupFilterID, string value) { List <GroupFilterSortingCriteria> ls = new List <GroupFilterSortingCriteria>(); if (!string.IsNullOrEmpty(value)) { string[] scrit = value.Split('|'); foreach (string sortpair in scrit) { string[] spair = sortpair.Split(';'); if (spair.Length != 2) { continue; } int stype; int sdir; int.TryParse(spair[0], out stype); int.TryParse(spair[1], out sdir); if (stype > 0 && sdir > 0) { GroupFilterSortingCriteria gfsc = new GroupFilterSortingCriteria { GroupFilterID = GroupFilterID, SortType = (GroupFilterSorting)stype, SortDirection = (GroupFilterSortDirection)sdir }; ls.Add(gfsc); } } } return(ls); }
public static IQueryable <T> SortGroups <T>(this CL_GroupFilter gf, IQueryable <T> list) where T : CL_AnimeGroup_User { List <GroupFilterSortingCriteria> criterias = GroupFilterSortingCriteria.Create(gf.GroupFilterID, gf.SortingCriteria); foreach (GroupFilterSortingCriteria f in criterias) { list = GeneratePredicate(list, f.SortType, f.SortDirection); } return(list); }
public static Dictionary <string, bool> GetSortDescriptions(this CL_GroupFilter gf) { Dictionary <string, bool> lst = new Dictionary <string, bool>(); List <GroupFilterSortingCriteria> criterias = GroupFilterSortingCriteria.Create(gf.GroupFilterID, gf.SortingCriteria); foreach (GroupFilterSortingCriteria f in criterias) { KeyValuePair <string, bool> k = GetSortDescription(f.SortType, f.SortDirection); lst[k.Key] = k.Value; } return(lst); }