Пример #1
0
        private List <Task> SortTasksByPriority(SortingDirections direction)
        {
            IOrderedEnumerable <Task> sortedTasks;

            if (direction == SortingDirections.ascending)
            {
                sortedTasks =
                    from task in this.Tasks
                    orderby task.PriorityLevel descending
                    select task;
            }
            else if (direction == SortingDirections.descending)
            {
                sortedTasks =
                    from task in this.Tasks
                    orderby task.PriorityLevel ascending
                    select task;
            }
            else
            {
                throw new ArgumentException("direction was not valid", "direction");
            }

            return(sortedTasks.ToList <Task>());
        }
Пример #2
0
        /// <summary>
        /// Store the currently selected sort direction
        /// </summary>
        /// <param name="field"></param>
        /// <param name="sortDirection"></param>
        public static void StoreLastSortDirection(SortingFields field, SortingDirections sortDirection)
        {
            bool isAscending = sortDirection == SortingDirections.Ascending;

            switch (field)
            {
            case SortingFields.VideoTitle:
                DBSortPreferences.Instance.SortVideoTitleAscending = isAscending;
                break;

            case SortingFields.Artist:
                DBSortPreferences.Instance.SortArtistAscending = isAscending;
                break;

            case SortingFields.Album:
                DBSortPreferences.Instance.SortAlbumAscending = isAscending;
                break;

            case SortingFields.DateAdded:
                DBSortPreferences.Instance.SortDateAddedAscending = isAscending;
                break;

            case SortingFields.Runtime:
                DBSortPreferences.Instance.SortRuntimeAscending = isAscending;
                break;

            case SortingFields.MostPlayedArtists:
                DBSortPreferences.Instance.SortMostPlayedArtistsAscending = isAscending;
                break;

            case SortingFields.MostPlayedVideos:
                DBSortPreferences.Instance.SortMostPlayedVideosAscending = isAscending;
                break;

            case SortingFields.LeastPlayedArtists:
                DBSortPreferences.Instance.SortLeastPlayedArtistsAscending = isAscending;
                break;

            case SortingFields.LeastPlayedVideos:
                DBSortPreferences.Instance.SortLeastPlayedVideosAscending = isAscending;
                break;

            case SortingFields.AlbumReleaseDate:
                DBSortPreferences.Instance.SortAlbumReleaseDateAscending = isAscending;
                break;

            case SortingFields.Composer:
                DBSortPreferences.Instance.SortComposerAscending = isAscending;
                break;

            default:
                break;
            }
            if (DBSortPreferences.Instance.CommitNeeded)
            {
                DBSortPreferences.Instance.Commit();
            }
        }
Пример #3
0
        /// <summary>
        /// Constructor for GUIListItemMovieComparer
        /// </summary>
        /// <param name="sortField">The database field to sort by</param>
        /// <param name="sortDirection">The direction to sort by</param>
        public GUIListItemVideoComparer(SortingFields sortField, SortingDirections sortDirection)
        {
            _sortField     = sortField;
            _sortDirection = sortDirection;

            Sort.StoreLastSortDirection(sortField, sortDirection);

            logger.Info("Sort Field: {0} Sort Direction: {1}", sortField, sortDirection);
        }
        /// <summary>
        ///     Sort input by ThenBy method the movies with sorting direction provided by parameter.
        /// </summary>
        /// <param name="dirrection">Sorting direction: {Ascending, Descending}.</param>
        /// <param name="movies">The movies.</param>
        /// <returns>
        ///     IOrderedEnumerable of MovieDto
        /// </returns>
        public IOrderedEnumerable <MovieDto> ThenBy(SortingDirections dirrection, IOrderedEnumerable <MovieDto> movies)
        {
            if (dirrection == SortingDirections.Ascending)
            {
                return(movies.ThenBy(m => m.ReleaseDate));
            }

            return(movies.ThenByDescending(m => m.ReleaseDate));
        }
        /// <summary>
        ///     Sort input movies with sorting direction provided by parameter.
        /// </summary>
        /// <param name="direction">Sorting direction: {Ascending, Descending}.</param>
        /// <param name="movies">The movies.</param>
        /// <returns>IOrderedEnumerable of MovieDto</returns>
        public IOrderedEnumerable <MovieDto> OrderBy(SortingDirections direction, List <MovieDto> movies)
        {
            if (direction == SortingDirections.Ascending)
            {
                return(movies.OrderBy(m => m.MovieId));
            }

            return(movies.OrderByDescending(m => m.MovieId));
        }
Пример #6
0
        public static void StoreLastSortDirection(SortingFields field, SortingDirections sortDirection)
        {
            bool isAscending = sortDirection == SortingDirections.Ascending;

            switch (field)
            {
            case SortingFields.Title:
                DBSortPreferences.Instance.SortTitleAscending = isAscending;
                break;

            case SortingFields.DateAdded:
                DBSortPreferences.Instance.SortDateAddedAscending = isAscending;
                break;

            case SortingFields.ReleaseDate:
                DBSortPreferences.Instance.SortReleaseDateAscending = isAscending;
                break;

            case SortingFields.Year:
                DBSortPreferences.Instance.SortYearAscending = isAscending;
                break;

            case SortingFields.Certification:
                DBSortPreferences.Instance.SortCertificationAscending = isAscending;
                break;

            case SortingFields.Language:
                DBSortPreferences.Instance.SortLanguageAscending = isAscending;
                break;

            case SortingFields.Score:
                DBSortPreferences.Instance.SortScoreAscending = isAscending;
                break;

            case SortingFields.Runtime:
                DBSortPreferences.Instance.SortRuntimeAscending = isAscending;
                break;

            case SortingFields.FilePath:
                DBSortPreferences.Instance.SortFilePathAscending = isAscending;
                break;

            case SortingFields.FileSize:
                DBSortPreferences.Instance.SortFileSizeAscending = isAscending;
                break;

            default:
                break;
            }
            if (DBSortPreferences.Instance.CommitNeeded)
            {
                DBSortPreferences.Instance.Commit();
            }
        }
Пример #7
0
 public static IOrderedQueryable <T> OrderBy <T, TKey>(
     this IQueryable <T> queryable,
     Expression <Func <T, TKey> > selector,
     SortingDirections directions)
 {
     return(directions switch
     {
         SortingDirections.Ascending => queryable.OrderBy(selector),
         SortingDirections.Descending => queryable.OrderByDescending(selector),
         _ => throw new ArgumentOutOfRangeException(nameof(directions), directions, null)
     });
Пример #8
0
 public GUIListItemMovieSorter(SortingFields sortField, SortingDirections sortDirection)
 {
     _sortField     = sortField;
     _sortDirection = sortDirection;
 }