1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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);
- }
- }
- }
|