From 90155278f8b4465a4b5eaf140c5e6e4905cc8dcf Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 16 Jun 2013 21:49:41 -0400 Subject: [PATCH] added error handling with multi disc movies --- MediaBrowser.Controller/Entities/Video.cs | 42 ++++++++++++----------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index d8d700d644..ad4cb2d09d 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 /// Task{System.Boolean}. private async Task 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 /// IEnumerable{Video}. private IEnumerable