Exemplo n.º 1
0
		public static string GetTextForEnum_SortDirection(GroupFilterSortDirection sort)
		{
			switch (sort)
			{
				case GroupFilterSortDirection.Asc: return "Asc";
				case GroupFilterSortDirection.Desc: return "Desc";
				default: return "Asc";
			}
		}
Exemplo n.º 2
0
        public static string GetTextForEnum_SortDirection(GroupFilterSortDirection sort)
        {
            switch (sort)
            {
            case GroupFilterSortDirection.Asc: return(Properties.Resources.GroupFilterSortDirection_Asc);

            case GroupFilterSortDirection.Desc: return(Properties.Resources.GroupFilterSortDirection_Desc);

            default: return(Properties.Resources.GroupFilterSortDirection_Asc);
            }
        }
Exemplo n.º 3
0
        public static string GetTextForEnum_SortDirection(GroupFilterSortDirection sort)
        {
            switch (sort)
            {
            case GroupFilterSortDirection.Asc: return("Asc");

            case GroupFilterSortDirection.Desc: return("Desc");

            default: return("Asc");
            }
        }
Exemplo n.º 4
0
        public static bool DialogSelectGFQuickSort(ref string sortType, ref GroupFilterSortDirection sortDirection, string previousMenu)
        {
            //show the selection dialog
            GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU);

            if (dlg == null)
            {
                return(false);
            }

            List <string> sortTypes = GroupFilterHelper.GetQuickSortTypes();

            while (true)
            {
                dlg.Reset();

                dlg.SetHeading(Translation.QuickSort);

                dlg.Add("<<< " + previousMenu);

                string menu = string.Format("{1} ({0}) >>>", sortDirection == GroupFilterSortDirection.Asc ? Translation.Asc : Translation.Desc, Translation.SortDirection);

                dlg.Add(menu);

                int index = 0;
                foreach (string srt in sortTypes)
                {
                    dlg.Add(srt);
                    index++;
                }

                dlg.DoModal(GUIWindowManager.ActiveWindow);
                int selection = dlg.SelectedLabel;

                if (selection <= 0)
                {
                    return(true);
                }

                if (selection == 1)
                {
                    DialogSelectGFQuickSortDirection(ref sortDirection, Translation.QuickSort);
                    // display quick sort again
                }
                else
                {
                    sortType = sortTypes[selection - 2];
                    return(false);
                }
            }
        }
Exemplo n.º 5
0
 private static IOrderedEnumerable <CL_AnimeGroup_User> Order <T>(IEnumerable <CL_AnimeGroup_User> groups,
                                                                  Func <CL_AnimeGroup_User, T> o,
                                                                  GroupFilterSortDirection direc, bool isfirst)
 {
     if (isfirst)
     {
         return(direc == GroupFilterSortDirection.Asc
             ? groups.OrderBy(o)
             : groups.OrderByDescending(o));
     }
     return(direc == GroupFilterSortDirection.Asc
         ? ((IOrderedEnumerable <CL_AnimeGroup_User>)groups).ThenBy(o)
         : ((IOrderedEnumerable <CL_AnimeGroup_User>)groups).ThenByDescending(o));
 }
Exemplo n.º 6
0
 private static IOrderedEnumerable <Contract_AnimeGroup> Order <T>(IEnumerable <Contract_AnimeGroup> groups, Func <Contract_AnimeGroup, T> o,
                                                                   GroupFilterSortDirection direc, bool isfirst)
 {
     if (isfirst)
     {
         if (direc == GroupFilterSortDirection.Asc)
         {
             return(groups.OrderBy(o));
         }
         return(groups.OrderByDescending(o));
     }
     else
     {
         if (direc == GroupFilterSortDirection.Asc)
         {
             return(((IOrderedEnumerable <Contract_AnimeGroup>)groups).ThenBy(o));
         }
         return(((IOrderedEnumerable <Contract_AnimeGroup>)groups).ThenByDescending(o));
     }
 }
Exemplo n.º 7
0
        public static bool DialogSelectGFQuickSortDirection(ref GroupFilterSortDirection sortDirection, string previousMenu)
        {
            //show the selection dialog
            GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU);

            if (dlg == null)
            {
                return(false);
            }

            dlg.Reset();
            dlg.SetHeading("Sort Direction");

            dlg.Add("<<< " + previousMenu);
            dlg.Add("Ascending");
            dlg.Add("Descending");

            dlg.DoModal(GUIWindowManager.ActiveWindow);
            int selection = dlg.SelectedLabel;

            if (selection <= 0)
            {
                return(true);
            }

            if (selection == 1)
            {
                sortDirection = GroupFilterSortDirection.Asc;
            }
            if (selection == 2)
            {
                sortDirection = GroupFilterSortDirection.Desc;
            }

            return(true);
        }
Exemplo n.º 8
0
        public static SortPropOrFieldAndDirection GetSortDescription(GroupFilterSorting sortType, GroupFilterSortDirection sortDirection)
        {
            string sortColumn = "";
            bool sortDescending = sortDirection == GroupFilterSortDirection.Desc;
            SortType sortFieldType = SortType.eString;

            switch (sortType)
            {
                case GroupFilterSorting.AniDBRating:
                    sortColumn = "AniDBRating"; sortFieldType = SortType.eDoubleOrFloat; break;
                case GroupFilterSorting.EpisodeAddedDate:
                    sortColumn = "EpisodeAddedDate"; sortFieldType = SortType.eDateTime; break;
                case GroupFilterSorting.EpisodeAirDate:
                    sortColumn = "AirDate"; sortFieldType = SortType.eDateTime; break;
                case GroupFilterSorting.EpisodeWatchedDate:
                    sortColumn = "WatchedDate"; sortFieldType = SortType.eDateTime; break;
                case GroupFilterSorting.GroupName:
                    sortColumn = "GroupName"; sortFieldType = SortType.eString; break;
                case GroupFilterSorting.SortName:
                    sortColumn = "SortName"; sortFieldType = SortType.eString; break;
                case GroupFilterSorting.MissingEpisodeCount:
                    sortColumn = "MissingEpisodeCount"; sortFieldType = SortType.eInteger; break;
                case GroupFilterSorting.SeriesAddedDate:
                    sortColumn = "Stat_SeriesCreatedDate"; sortFieldType = SortType.eDateTime; break;
                case GroupFilterSorting.SeriesCount:
                    sortColumn = "AllSeriesCount"; sortFieldType = SortType.eInteger; break;
                case GroupFilterSorting.UnwatchedEpisodeCount:
                    sortColumn = "UnwatchedEpisodeCount"; sortFieldType = SortType.eInteger; break;
                case GroupFilterSorting.UserRating:
                    sortColumn = "Stat_UserVoteOverall"; sortFieldType = SortType.eDoubleOrFloat; break;
                case GroupFilterSorting.Year:
                    if (sortDirection == GroupFilterSortDirection.Asc)
                        sortColumn = "Stat_AirDate_Min";
                    else
                        sortColumn = "Stat_AirDate_Max";

                    sortFieldType = SortType.eDateTime;
                    break;
                default:
                    sortColumn = "GroupName"; sortFieldType = SortType.eString; break;
            }

            return new SortPropOrFieldAndDirection(sortColumn, sortDescending, sortFieldType);
        }
Exemplo n.º 9
0
        public static SortDescription GetSortDescription(GroupFilterSorting sortType, GroupFilterSortDirection sortDirection)
        {
            string            sortColumn = "";
            ListSortDirection sortd      = ListSortDirection.Ascending;

            switch (sortType)
            {
            case GroupFilterSorting.AniDBRating:
                sortColumn = "AniDBRating"; break;

            case GroupFilterSorting.EpisodeAddedDate:
                sortColumn = "EpisodeAddedDate"; break;

            case GroupFilterSorting.EpisodeAirDate:
                sortColumn = "AirDate"; break;

            case GroupFilterSorting.EpisodeWatchedDate:
                sortColumn = "WatchedDate"; break;

            case GroupFilterSorting.GroupName:
                sortColumn = "GroupName"; break;

            case GroupFilterSorting.SortName:
                sortColumn = "SortName"; break;

            case GroupFilterSorting.MissingEpisodeCount:
                sortColumn = "MissingEpisodeCount"; break;

            case GroupFilterSorting.SeriesAddedDate:
                sortColumn = "Stat_SeriesCreatedDate"; break;

            case GroupFilterSorting.SeriesCount:
                sortColumn = "AllSeriesCount"; break;

            case GroupFilterSorting.UnwatchedEpisodeCount:
                sortColumn = "UnwatchedEpisodeCount"; break;

            case GroupFilterSorting.UserRating:
                sortColumn = "Stat_UserVoteOverall"; break;

            case GroupFilterSorting.Year:
                if (sortDirection == GroupFilterSortDirection.Asc)
                {
                    sortColumn = "Stat_AirDate_Min";
                }
                else
                {
                    sortColumn = "Stat_AirDate_Max";
                }
                break;

            default:
                sortColumn = "GroupName"; break;
            }

            if (sortDirection == GroupFilterSortDirection.Asc)
            {
                sortd = ListSortDirection.Ascending;
            }
            else
            {
                sortd = ListSortDirection.Descending;
            }

            return(new SortDescription(sortColumn, sortd));
        }
Exemplo n.º 10
0
        public static SortPropOrFieldAndDirection GetSortDescription(GroupFilterSorting sortType, GroupFilterSortDirection sortDirection)
        {
            string   sortColumn     = "";
            bool     sortDescending = sortDirection == GroupFilterSortDirection.Desc;
            SortType sortFieldType  = SortType.eString;

            switch (sortType)
            {
            case GroupFilterSorting.AniDBRating:
                sortColumn = "AniDBRating"; sortFieldType = SortType.eDoubleOrFloat; break;

            case GroupFilterSorting.EpisodeAddedDate:
                sortColumn = "EpisodeAddedDate"; sortFieldType = SortType.eDateTime; break;

            case GroupFilterSorting.EpisodeAirDate:
                sortColumn = "AirDate"; sortFieldType = SortType.eDateTime; break;

            case GroupFilterSorting.EpisodeWatchedDate:
                sortColumn = "WatchedDate"; sortFieldType = SortType.eDateTime; break;

            case GroupFilterSorting.GroupName:
                sortColumn = "GroupName"; sortFieldType = SortType.eString; break;

            case GroupFilterSorting.SortName:
                sortColumn = "SortName"; sortFieldType = SortType.eString; break;

            case GroupFilterSorting.MissingEpisodeCount:
                sortColumn = "MissingEpisodeCount"; sortFieldType = SortType.eInteger; break;

            case GroupFilterSorting.SeriesAddedDate:
                sortColumn = "Stat_SeriesCreatedDate"; sortFieldType = SortType.eDateTime; break;

            case GroupFilterSorting.SeriesCount:
                sortColumn = "AllSeriesCount"; sortFieldType = SortType.eInteger; break;

            case GroupFilterSorting.UnwatchedEpisodeCount:
                sortColumn = "UnwatchedEpisodeCount"; sortFieldType = SortType.eInteger; break;

            case GroupFilterSorting.UserRating:
                sortColumn = "Stat_UserVoteOverall"; sortFieldType = SortType.eDoubleOrFloat; break;

            case GroupFilterSorting.Year:
                if (sortDirection == GroupFilterSortDirection.Asc)
                {
                    sortColumn = "Stat_AirDate_Min";
                }
                else
                {
                    sortColumn = "Stat_AirDate_Max";
                }

                sortFieldType = SortType.eDateTime;
                break;

            default:
                sortColumn = "GroupName"; sortFieldType = SortType.eString; break;
            }



            return(new SortPropOrFieldAndDirection(sortColumn, sortDescending, sortFieldType));
        }
Exemplo n.º 11
0
        public static IQueryable <T> GeneratePredicate <T>(this IQueryable <T> lst, GroupFilterSorting sortType, GroupFilterSortDirection sortDirection) where T : CL_AnimeGroup_User
        {
            Expression <Func <T, dynamic> > selector;

            switch (sortType)
            {
            case GroupFilterSorting.AniDBRating:
                selector = c => c.Stat_AniDBRating;
                break;

            case GroupFilterSorting.EpisodeAddedDate:
                selector = c => c.EpisodeAddedDate;
                break;

            case GroupFilterSorting.EpisodeAirDate:
                selector = c => c.LatestEpisodeAirDate;
                break;

            case GroupFilterSorting.EpisodeWatchedDate:
                selector = c => c.WatchedDate;
                break;

            case GroupFilterSorting.GroupName:
                selector = c => c.GroupName;
                break;

            case GroupFilterSorting.SortName:
                selector = c => c.SortName;
                break;

            case GroupFilterSorting.MissingEpisodeCount:
                selector = c => c.MissingEpisodeCount;
                break;

            case GroupFilterSorting.SeriesAddedDate:
                selector = c => c.Stat_SeriesCreatedDate;
                break;

            case GroupFilterSorting.SeriesCount:
                selector = c => c.Stat_SeriesCount;
                break;

            case GroupFilterSorting.UnwatchedEpisodeCount:
                selector = c => c.UnwatchedEpisodeCount;
                break;

            case GroupFilterSorting.UserRating:
                selector = c => c.Stat_UserVoteOverall;
                break;

            case GroupFilterSorting.Year:
                if (sortDirection == GroupFilterSortDirection.Asc)
                {
                    selector = c => c.Stat_AirDate_Min;
                }
                else
                {
                    selector = c => c.Stat_AirDate_Max;
                }
                break;

            default:
                selector = c => c.GroupName;
                break;
            }
            if (lst is IOrderedQueryable <T> )
            {
                IOrderedQueryable <T> n = (IOrderedQueryable <T>)lst;
                if (sortDirection != GroupFilterSortDirection.Asc)
                {
                    return(n.ThenByDescending(selector));
                }
                return(n.ThenBy(selector));
            }
            if (sortDirection != GroupFilterSortDirection.Asc)
            {
                return(lst.OrderByDescending(selector));
            }
            return(lst.OrderBy(selector));
        }
Exemplo n.º 12
0
        public static KeyValuePair <string, bool> GetSortDescription(this GroupFilterSorting sortType, GroupFilterSortDirection sortDirection)
        {
            string sortColumn = "";
            bool   srt        = false;

            switch (sortType)
            {
            case GroupFilterSorting.AniDBRating:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, decimal> >)(c => c.Stat_AniDBRating)).ToName();
                break;

            case GroupFilterSorting.EpisodeAddedDate:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, DateTime?> >)(c => c.EpisodeAddedDate)).ToName();
                break;

            case GroupFilterSorting.EpisodeAirDate:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, DateTime?> >)(c => c.LatestEpisodeAirDate)).ToName();
                break;

            case GroupFilterSorting.EpisodeWatchedDate:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, DateTime?> >)(c => c.WatchedDate)).ToName();
                break;

            case GroupFilterSorting.GroupName:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, string> >)(c => c.GroupName)).ToName();
                break;

            case GroupFilterSorting.SortName:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, string> >)(c => c.SortName)).ToName();
                break;

            case GroupFilterSorting.MissingEpisodeCount:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, int> >)(c => c.MissingEpisodeCount)).ToName();
                break;

            case GroupFilterSorting.SeriesAddedDate:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, DateTime?> >)(c => c.Stat_SeriesCreatedDate)).ToName();
                break;

            case GroupFilterSorting.SeriesCount:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, int> >)(c => c.Stat_SeriesCount)).ToName();
                break;

            case GroupFilterSorting.UnwatchedEpisodeCount:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, int> >)(c => c.UnwatchedEpisodeCount)).ToName();
                break;

            case GroupFilterSorting.UserRating:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, decimal?> >)(c => c.Stat_UserVoteOverall)).ToName();
                break;

            case GroupFilterSorting.Year:
                sortColumn = sortDirection == GroupFilterSortDirection.Asc ? ((Expression <Func <CL_AnimeGroup_User, DateTime?> >)(c => c.Stat_AirDate_Min)).ToName() : ((Expression <Func <CL_AnimeGroup_User, DateTime?> >)(c => c.Stat_AirDate_Max)).ToName();
                break;

            case GroupFilterSorting.GroupFilterName:
                sortColumn = ((Expression <Func <CL_GroupFilter, string> >)(c => c.GroupFilterName)).ToName();
                break;

            default:
                sortColumn = ((Expression <Func <CL_AnimeGroup_User, string> >)(c => c.GroupName)).ToName();
                break;
            }

            if (sortDirection != GroupFilterSortDirection.Asc)
            {
                srt = true;
            }
            return(new KeyValuePair <string, bool>(sortColumn, srt));
        }
Exemplo n.º 13
0
 public static string GetTextForEnum_SortDirection(GroupFilterSortDirection sort)
 {
     switch (sort)
     {
         case GroupFilterSortDirection.Asc: return Properties.Resources.GroupFilterSortDirection_Asc;
         case GroupFilterSortDirection.Desc: return Properties.Resources.GroupFilterSortDirection_Desc;
         default: return Properties.Resources.GroupFilterSortDirection_Asc;
     }
 }
Exemplo n.º 14
0
        public static SortDescription GetSortDescription(GroupFilterSorting sortType, GroupFilterSortDirection sortDirection)
        {
            string sortColumn = "";
            ListSortDirection sortd = ListSortDirection.Ascending;

            switch (sortType)
            {
                case GroupFilterSorting.AniDBRating:
                    sortColumn = "AniDBRating"; break;
                case GroupFilterSorting.EpisodeAddedDate:
                    sortColumn = "EpisodeAddedDate"; break;
                case GroupFilterSorting.EpisodeAirDate:
                    sortColumn = "AirDate"; break;
                case GroupFilterSorting.EpisodeWatchedDate:
                    sortColumn = "WatchedDate"; break;
                case GroupFilterSorting.GroupName:
                    sortColumn = "GroupName"; break;
                case GroupFilterSorting.SortName:
                    sortColumn = "SortName"; break;
                case GroupFilterSorting.MissingEpisodeCount:
                    sortColumn = "MissingEpisodeCount"; break;
                case GroupFilterSorting.SeriesAddedDate:
                    sortColumn = "Stat_SeriesCreatedDate"; break;
                case GroupFilterSorting.SeriesCount:
                    sortColumn = "AllSeriesCount"; break;
                case GroupFilterSorting.UnwatchedEpisodeCount:
                    sortColumn = "UnwatchedEpisodeCount"; break;
                case GroupFilterSorting.UserRating:
                    sortColumn = "Stat_UserVoteOverall"; break;
                case GroupFilterSorting.Year:
                    if (sortDirection == GroupFilterSortDirection.Asc)
                        sortColumn = "Stat_AirDate_Min";
                    else
                        sortColumn = "Stat_AirDate_Max";
                    break;
                default:
                    sortColumn = "GroupName"; break;
            }

            if (sortDirection == GroupFilterSortDirection.Asc)
                sortd = ListSortDirection.Ascending;
            else
                sortd = ListSortDirection.Descending;

            return new SortDescription(sortColumn, sortd);
        }
Exemplo n.º 15
0
        public static bool DialogSelectGFQuickSortDirection(ref GroupFilterSortDirection sortDirection, string previousMenu)
        {
            //show the selection dialog
            GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU);
            if (dlg == null)
                return false;

            dlg.Reset();
            dlg.SetHeading("Sort Direction");

            dlg.Add("<<< " + previousMenu);
            dlg.Add("Ascending");
            dlg.Add("Descending");

            dlg.DoModal(GUIWindowManager.ActiveWindow);
            int selection = dlg.SelectedLabel;

            if (selection <= 0)
                return true;

            if (selection == 1) sortDirection = GroupFilterSortDirection.Asc;
            if (selection == 2) sortDirection = GroupFilterSortDirection.Desc;

            return true;
        }
Exemplo n.º 16
0
        public static bool DialogSelectGFQuickSort(ref string sortType, ref GroupFilterSortDirection sortDirection, string previousMenu)
        {
            //show the selection dialog
            GUIDialogMenu dlg = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU);
            if (dlg == null)
                return false;

            List<string> sortTypes = GroupFilterHelper.GetQuickSortTypes();

            while (true)
            {
                dlg.Reset();
                dlg.SetHeading("Quick Sort");

                dlg.Add("<<< " + previousMenu);

                string menu = string.Format("Sort Direction ({0}) >>>", sortDirection == GroupFilterSortDirection.Asc ? "Asc" : "Desc");
                dlg.Add(menu);

                int index = 0;
                foreach (string srt in sortTypes)
                {
                    dlg.Add(srt);
                    index++;
                }

                dlg.DoModal(GUIWindowManager.ActiveWindow);
                int selection = dlg.SelectedLabel;

                if (selection <= 0)
                    return true;

                if (selection == 1)
                {
                    Utils.DialogSelectGFQuickSortDirection(ref sortDirection, "Quick Sort");
                    // display quick sort again
                }
                else
                {
                    sortType = sortTypes[selection - 2];
                    return false;
                }
            }
        }