aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library/Validators/BoxSetPostScanTask.cs
diff options
context:
space:
mode:
authorTim Hobbs <jesus.tesh@gmail.com>2014-03-17 15:47:22 -0700
committerTim Hobbs <jesus.tesh@gmail.com>2014-03-17 15:47:22 -0700
commitcf43180a2dcab023ba6a48f37920615d7e87c599 (patch)
tree1b94ff05caf34974161595823898b8b32e1f6d24 /MediaBrowser.Server.Implementations/Library/Validators/BoxSetPostScanTask.cs
parent7a0963129126679aad8b64cc8a36474edaca7170 (diff)
parent78acab691693d6adfac67bcf3f0617e336f801a6 (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/Validators/BoxSetPostScanTask.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Library/Validators/BoxSetPostScanTask.cs50
1 files changed, 50 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/Validators/BoxSetPostScanTask.cs b/MediaBrowser.Server.Implementations/Library/Validators/BoxSetPostScanTask.cs
new file mode 100644
index 000000000..f02c907c6
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/Library/Validators/BoxSetPostScanTask.cs
@@ -0,0 +1,50 @@
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Movies;
+using MediaBrowser.Controller.Library;
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Server.Implementations.Library.Validators
+{
+ public class BoxSetPostScanTask : ILibraryPostScanTask
+ {
+ private readonly ILibraryManager _libraryManager;
+
+ public BoxSetPostScanTask(ILibraryManager libraryManager)
+ {
+ _libraryManager = libraryManager;
+ }
+
+ public Task Run(IProgress<double> progress, CancellationToken cancellationToken)
+ {
+ var items = _libraryManager.RootFolder.RecursiveChildren.ToList();
+
+ var boxsets = items.OfType<BoxSet>().ToList();
+
+ var numComplete = 0;
+
+ foreach (var boxset in boxsets)
+ {
+ foreach (var child in boxset.GetLinkedChildren().OfType<ISupportsBoxSetGrouping>())
+ {
+ var boxsetIdList = child.BoxSetIdList.ToList();
+ if (!boxsetIdList.Contains(boxset.Id))
+ {
+ boxsetIdList.Add(boxset.Id);
+ }
+ child.BoxSetIdList = boxsetIdList;
+ }
+
+ numComplete++;
+ double percent = numComplete;
+ percent /= boxsets.Count;
+ progress.Report(percent * 100);
+ }
+
+ progress.Report(100);
+ return Task.FromResult(true);
+ }
+ }
+}