diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-18 19:33:21 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-18 19:33:21 -0400 |
| commit | 18a909797fe1a8d8005841582ed01e91c31509dd (patch) | |
| tree | 7f3971a66d5d1b3d29f01f10e9e56dfa04ef5c4f | |
| parent | 2ccd7d3e774120b2d25818fdfa97da54a8e8ce00 (diff) | |
hide concurrent dictionary from folder subclasses
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/IndexFolder.cs | 5 |
3 files changed, 13 insertions, 8 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index db3e546d1..ae6ef6340 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1042,7 +1042,9 @@ namespace MediaBrowser.Controller.Entities throw new ArgumentNullException("user"); } - if (user.Configuration.MaxParentalRating == null) + var maxAllowedRating = user.Configuration.MaxParentalRating; + + if (maxAllowedRating == null) { return true; } @@ -1067,7 +1069,7 @@ namespace MediaBrowser.Controller.Entities return true; } - return value.Value <= user.Configuration.MaxParentalRating.Value; + return value.Value <= maxAllowedRating.Value; } /// <summary> diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 252b4d0a8..d14ee2228 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -476,7 +476,7 @@ namespace MediaBrowser.Controller.Entities { get { - LazyInitializer.EnsureInitialized(ref _children, ref _childrenInitialized, ref _childrenSyncLock, LoadChildren); + LazyInitializer.EnsureInitialized(ref _children, ref _childrenInitialized, ref _childrenSyncLock, LoadChildrenInternal); return _children; } private set @@ -529,16 +529,20 @@ namespace MediaBrowser.Controller.Entities } } + private ConcurrentDictionary<Guid, BaseItem> LoadChildrenInternal() + { + return new ConcurrentDictionary<Guid, BaseItem>(LoadChildren().ToDictionary(i => i.Id)); + } /// <summary> /// Loads our children. Validation will occur externally. /// We want this sychronous. /// </summary> /// <returns>ConcurrentBag{BaseItem}.</returns> - protected virtual ConcurrentDictionary<Guid, BaseItem> LoadChildren() + protected virtual IEnumerable<BaseItem> LoadChildren() { //just load our children from the repo - the library will be validated and maintained in other processes - return new ConcurrentDictionary<Guid, BaseItem>(GetCachedChildren().ToDictionary(i => i.Id)); + return GetCachedChildren(); } /// <summary> diff --git a/MediaBrowser.Controller/Entities/IndexFolder.cs b/MediaBrowser.Controller/Entities/IndexFolder.cs index 6b88ea1fc..57e4a35d3 100644 --- a/MediaBrowser.Controller/Entities/IndexFolder.cs +++ b/MediaBrowser.Controller/Entities/IndexFolder.cs @@ -1,7 +1,6 @@ using MediaBrowser.Common.Extensions; using MediaBrowser.Model.Entities; using MoreLinq; -using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; @@ -111,7 +110,7 @@ namespace MediaBrowser.Controller.Entities /// Override to return the children defined to us when we were created /// </summary> /// <value>The actual children.</value> - protected override ConcurrentDictionary<Guid,BaseItem> LoadChildren() + protected override IEnumerable<BaseItem> LoadChildren() { var originalChildSource = ChildSource.ToList(); @@ -136,7 +135,7 @@ namespace MediaBrowser.Controller.Entities // Now - since we built the index grouping from the bottom up - we now need to properly set Parents from the top down SetParents(this, kids.OfType<IndexFolder>()); - return new ConcurrentDictionary<Guid, BaseItem>(kids.DistinctBy(i => i.Id).ToDictionary(i => i.Id)); + return kids.DistinctBy(i => i.Id); } /// <summary> |
