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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }