123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- using MediaBrowser.Controller.Localization;
- using MediaBrowser.Model.Entities;
- using MediaBrowser.Model.Globalization;
- using MediaBrowser.Server.Implementations.HttpServer;
- using MoreLinq;
- using ServiceStack.ServiceHost;
- using System.Collections.Generic;
- using System.Globalization;
- using System.Linq;
- namespace MediaBrowser.Api
- {
- /// <summary>
- /// Class GetCultures
- /// </summary>
- [Route("/Localization/Cultures", "GET")]
- [ServiceStack.ServiceHost.Api(Description = "Gets known cultures")]
- public class GetCultures : IReturn<List<CultureDto>>
- {
- }
- /// <summary>
- /// Class GetCountries
- /// </summary>
- [Route("/Localization/Countries", "GET")]
- [ServiceStack.ServiceHost.Api(Description = "Gets known countries")]
- public class GetCountries : IReturn<List<CountryInfo>>
- {
- }
- /// <summary>
- /// Class ParentalRatings
- /// </summary>
- [Route("/Localization/ParentalRatings", "GET")]
- [ServiceStack.ServiceHost.Api(Description = "Gets known parental ratings")]
- public class GetParentalRatings : IReturn<List<ParentalRating>>
- {
- }
- /// <summary>
- /// Class CulturesService
- /// </summary>
- public class LocalizationService : BaseRestService
- {
- /// <summary>
- /// Gets the specified request.
- /// </summary>
- /// <param name="request">The request.</param>
- /// <returns>System.Object.</returns>
- public object Get(GetParentalRatings request)
- {
- var ratings =
- Ratings.RatingsDict.Select(k => new ParentalRating { Name = k.Key, Value = k.Value });
- var result = ratings.OrderBy(p => p.Value).Where(p => p.Value > 0).ToList();
- return ToOptimizedResult(result);
- }
- /// <summary>
- /// Gets the specified request.
- /// </summary>
- /// <param name="request">The request.</param>
- /// <returns>System.Object.</returns>
- public object Get(GetCountries request)
- {
- var result = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
- .Select(c => new RegionInfo(c.LCID))
- .OrderBy(c => c.DisplayName)
- // Try to eliminate dupes
- .DistinctBy(c => c.TwoLetterISORegionName)
- .Select(c => new CountryInfo
- {
- Name = c.Name,
- DisplayName = c.DisplayName,
- TwoLetterISORegionName = c.TwoLetterISORegionName,
- ThreeLetterISORegionName = c.ThreeLetterISORegionName
- })
- .ToList();
- return ToOptimizedResult(result);
- }
- /// <summary>
- /// Gets the specified request.
- /// </summary>
- /// <param name="request">The request.</param>
- /// <returns>System.Object.</returns>
- public object Get(GetCultures request)
- {
- var result = CultureInfo.GetCultures(CultureTypes.AllCultures)
- .OrderBy(c => c.DisplayName)
- // Try to eliminate dupes
- .DistinctBy(c => c.TwoLetterISOLanguageName + c.ThreeLetterISOLanguageName)
- .Select(c => new CultureDto
- {
- Name = c.Name,
- DisplayName = c.DisplayName,
- ThreeLetterISOLanguageName = c.ThreeLetterISOLanguageName,
- TwoLetterISOLanguageName = c.TwoLetterISOLanguageName
- })
- .ToList();
- return ToOptimizedResult(result);
- }
- }
- }
|