diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-20 20:33:05 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-20 20:33:05 -0500 |
| commit | 767cdc1f6f6a63ce997fc9476911e2c361f9d402 (patch) | |
| tree | 49add55976f895441167c66cfa95e5c7688d18ce /MediaBrowser.Api/LocalizationService.cs | |
| parent | 845554722efaed872948a9e0f7202e3ef52f1b6e (diff) | |
Pushing missing changes
Diffstat (limited to 'MediaBrowser.Api/LocalizationService.cs')
| -rw-r--r-- | MediaBrowser.Api/LocalizationService.cs | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/MediaBrowser.Api/LocalizationService.cs b/MediaBrowser.Api/LocalizationService.cs new file mode 100644 index 000000000..ce9f175e3 --- /dev/null +++ b/MediaBrowser.Api/LocalizationService.cs @@ -0,0 +1,112 @@ +using MediaBrowser.Common.Net; +using MediaBrowser.Controller.Localization; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Globalization; +using MoreLinq; +using ServiceStack.ServiceHost; +using System.Collections.Generic; +using System.ComponentModel.Composition; +using System.Globalization; +using System.Linq; + +namespace MediaBrowser.Api +{ + /// <summary> + /// Class GetCultures + /// </summary> + [Route("/Localization/Cultures", "GET")] + public class GetCultures : IReturn<List<CultureDto>> + { + } + + /// <summary> + /// Class GetCountries + /// </summary> + [Route("/Localization/Countries", "GET")] + public class GetCountries : IReturn<List<CountryInfo>> + { + } + + /// <summary> + /// Class ParentalRatings + /// </summary> + [Route("/Localization/ParentalRatings", "GET")] + public class GetParentalRatings : IReturn<List<ParentalRating>> + { + } + + /// <summary> + /// Class CulturesService + /// </summary> + [Export(typeof(IRestfulService))] + 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); + } + } + +} |
