< Summary - Jellyfin

Information
Class: MediaBrowser.Model.Extensions.EnumerableExtensions
Assembly: MediaBrowser.Model
File(s): /srv/git/jellyfin/MediaBrowser.Model/Extensions/EnumerableExtensions.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 30
Coverable lines: 30
Total lines: 57
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
OrderByLanguageDescending(...)0%620%

File(s)

/srv/git/jellyfin/MediaBrowser.Model/Extensions/EnumerableExtensions.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using MediaBrowser.Model.Providers;
 5
 6namespace MediaBrowser.Model.Extensions
 7{
 8    /// <summary>
 9    /// Extension methods for <see cref="IEnumerable{T}"/>.
 10    /// </summary>
 11    public static class EnumerableExtensions
 12    {
 13        /// <summary>
 14        /// Orders <see cref="RemoteImageInfo"/> by requested language in descending order, prioritizing "en" over other
 15        /// </summary>
 16        /// <param name="remoteImageInfos">The remote image infos.</param>
 17        /// <param name="requestedLanguage">The requested language for the images.</param>
 18        /// <returns>The ordered remote image infos.</returns>
 19        public static IEnumerable<RemoteImageInfo> OrderByLanguageDescending(this IEnumerable<RemoteImageInfo> remoteIma
 20        {
 021            if (string.IsNullOrWhiteSpace(requestedLanguage))
 22            {
 23                // Default to English if no requested language is specified.
 024                requestedLanguage = "en";
 25            }
 26
 027            return remoteImageInfos.OrderByDescending(i =>
 028                {
 029                    // Image priority ordering:
 030                    //  - Images that match the requested language
 031                    //  - Images with no language
 032                    //  - TODO: Images that match the original language
 033                    //  - Images in English
 034                    //  - Images that don't match the requested language
 035
 036                    if (string.Equals(requestedLanguage, i.Language, StringComparison.OrdinalIgnoreCase))
 037                    {
 038                        return 4;
 039                    }
 040
 041                    if (string.IsNullOrEmpty(i.Language))
 042                    {
 043                        return 3;
 044                    }
 045
 046                    if (string.Equals(i.Language, "en", StringComparison.OrdinalIgnoreCase))
 047                    {
 048                        return 2;
 049                    }
 050
 051                    return 0;
 052                })
 053                .ThenByDescending(i => i.CommunityRating ?? 0)
 054                .ThenByDescending(i => i.VoteCount ?? 0);
 55        }
 56    }
 57}