aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/Video.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-06-16 21:49:41 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-06-16 21:49:41 -0400
commit90155278f8b4465a4b5eaf140c5e6e4905cc8dcf (patch)
treea748bd55957f14270e4caf00c57e612ec019c033 /MediaBrowser.Controller/Entities/Video.cs
parentff22828dd8d4edde4bb429163c9ff93b52812610 (diff)
added error handling with multi disc movies
Diffstat (limited to 'MediaBrowser.Controller/Entities/Video.cs')
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs42
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)
{