aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-01-18 23:29:57 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-01-18 23:29:57 -0500
commitde76156391655f726b5655f727e06822398827ca (patch)
treef7ae5e4af806744aaa34136ba47648dd2e412a02 /MediaBrowser.Controller/Entities
parent1316994324b178650e6bb9ddca740d9159d316d1 (diff)
rework hosting options
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/Movies/BoxSet.cs26
1 files changed, 26 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
index 4483c7b0f2..e48b8d8457 100644
--- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
+++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
@@ -1,4 +1,5 @@
using MediaBrowser.Common.Progress;
+using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
@@ -93,6 +94,31 @@ namespace MediaBrowser.Controller.Entities.Movies
return list;
}
+ /// <summary>
+ /// Updates the official rating based on content and returns true or false indicating if it changed.
+ /// </summary>
+ /// <returns></returns>
+ public bool UpdateRatingToContent()
+ {
+ var currentOfficialRating = OfficialRating;
+
+ // Gather all possible ratings
+ var ratings = RecursiveChildren
+ .Concat(GetLinkedChildren())
+ .Where(i => i is Movie || i is Series)
+ .Select(i => i.OfficialRating)
+ .Where(i => !string.IsNullOrEmpty(i))
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .Select(i => new Tuple<string, int?>(i, LocalizationManager.GetRatingLevel(i)))
+ .OrderBy(i => i.Item2 ?? 1000)
+ .Select(i => i.Item1);
+
+ OfficialRating = ratings.FirstOrDefault() ?? currentOfficialRating;
+
+ return !string.Equals(currentOfficialRating ?? string.Empty, OfficialRating ?? string.Empty,
+ StringComparison.OrdinalIgnoreCase);
+ }
+
public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren)
{
var children = base.GetChildren(user, includeLinkedChildren);