diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-06-16 21:49:41 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-06-16 21:49:41 -0400 |
| commit | 90155278f8b4465a4b5eaf140c5e6e4905cc8dcf (patch) | |
| tree | a748bd55957f14270e4caf00c57e612ec019c033 /MediaBrowser.Controller/Entities/Video.cs | |
| parent | ff22828dd8d4edde4bb429163c9ff93b52812610 (diff) | |
added error handling with multi disc movies
Diffstat (limited to 'MediaBrowser.Controller/Entities/Video.cs')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Video.cs | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index d8d700d64..ad4cb2d09 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Library; +using System.Collections; +using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Model.Entities; using System; @@ -136,7 +137,19 @@ namespace MediaBrowser.Controller.Entities // Kick off a task to refresh the main item var result = await base.RefreshMetadata(cancellationToken, forceSave, forceRefresh, allowSlowProviders).ConfigureAwait(false); - var additionalPartsChanged = await RefreshAdditionalParts(cancellationToken, forceSave, forceRefresh, allowSlowProviders).ConfigureAwait(false); + var additionalPartsChanged = false; + + if (IsMultiPart && LocationType == LocationType.FileSystem) + { + try + { + additionalPartsChanged = await RefreshAdditionalParts(cancellationToken, forceSave, forceRefresh, allowSlowProviders).ConfigureAwait(false); + } + catch (IOException ex) + { + Logger.ErrorException("Error loading additional parts for {0}.", ex, Name); + } + } return additionalPartsChanged || result; } @@ -151,7 +164,13 @@ namespace MediaBrowser.Controller.Entities /// <returns>Task{System.Boolean}.</returns> private async Task<bool> RefreshAdditionalParts(CancellationToken cancellationToken, bool forceSave = false, bool forceRefresh = false, bool allowSlowProviders = true) { + if (!IsMultiPart || LocationType != LocationType.FileSystem) + { + return false; + } + var newItems = LoadAdditionalParts().ToList(); + var newItemIds = newItems.Select(i => i.Id).ToList(); var itemsChanged = !AdditionalPartIds.SequenceEqual(newItemIds); @@ -171,11 +190,6 @@ namespace MediaBrowser.Controller.Entities /// <returns>IEnumerable{Video}.</returns> private IEnumerable<Video> LoadAdditionalParts() { - if (!IsMultiPart || LocationType != LocationType.FileSystem) - { - return new List<Video>(); - } - IEnumerable<FileSystemInfo> files; if (VideoType == VideoType.BluRay || VideoType == VideoType.Dvd) @@ -186,19 +200,7 @@ namespace MediaBrowser.Controller.Entities } else { - ItemResolveArgs resolveArgs; - - try - { - resolveArgs = ResolveArgs; - } - catch (IOException ex) - { - Logger.ErrorException("Error getting ResolveArgs for {0}", ex, Path); - return new List<Video>(); - } - - files = resolveArgs.FileSystemChildren.Where(i => + files = ResolveArgs.FileSystemChildren.Where(i => { if ((i.Attributes & FileAttributes.Directory) == FileAttributes.Directory) { |
