diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs | 65 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj | 1 |
2 files changed, 66 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs b/MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs new file mode 100644 index 0000000000..8705d912f9 --- /dev/null +++ b/MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs @@ -0,0 +1,65 @@ +using MediaBrowser.Controller.Localization; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Globalization; +using MoreLinq; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; + +namespace MediaBrowser.Server.Implementations.Localization +{ + /// <summary> + /// Class LocalizationManager + /// </summary> + public class LocalizationManager : ILocalizationManager + { + /// <summary> + /// Gets the cultures. + /// </summary> + /// <returns>IEnumerable{CultureDto}.</returns> + public IEnumerable<CultureDto> GetCultures() + { + return CultureInfo.GetCultures(CultureTypes.AllCultures) + .OrderBy(c => c.DisplayName) + .DistinctBy(c => c.TwoLetterISOLanguageName + c.ThreeLetterISOLanguageName) + .Select(c => new CultureDto + { + Name = c.Name, + DisplayName = c.DisplayName, + ThreeLetterISOLanguageName = c.ThreeLetterISOLanguageName, + TwoLetterISOLanguageName = c.TwoLetterISOLanguageName + }); + } + + /// <summary> + /// Gets the countries. + /// </summary> + /// <returns>IEnumerable{CountryInfo}.</returns> + public IEnumerable<CountryInfo> GetCountries() + { + return CultureInfo.GetCultures(CultureTypes.SpecificCultures) + .Select(c => new RegionInfo(c.LCID)) + .OrderBy(c => c.DisplayName) + .DistinctBy(c => c.TwoLetterISORegionName) + .Select(c => new CountryInfo + { + Name = c.Name, + DisplayName = c.DisplayName, + TwoLetterISORegionName = c.TwoLetterISORegionName, + ThreeLetterISORegionName = c.ThreeLetterISORegionName + }); + } + + /// <summary> + /// Gets the parental ratings. + /// </summary> + /// <returns>IEnumerable{ParentalRating}.</returns> + public IEnumerable<ParentalRating> GetParentalRatings() + { + return Ratings.RatingsDict + .Select(k => new ParentalRating {Name = k.Key, Value = k.Value}) + .OrderBy(p => p.Value) + .Where(p => p.Value > 0); + } + } +} diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index ca68b6fd3a..60afc8413d 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -138,6 +138,7 @@ <Compile Include="Library\Resolvers\TV\SeriesResolver.cs" /> <Compile Include="Library\Resolvers\VideoResolver.cs" /> <Compile Include="Library\UserManager.cs" /> + <Compile Include="Localization\LocalizationManager.cs" /> <Compile Include="MediaEncoder\MediaEncoder.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Providers\ProviderManager.cs" /> |
