aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/MetadataService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager/MetadataService.cs')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs20
1 files changed, 15 insertions, 5 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 8b085a05a..f64d1b152 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -195,7 +195,7 @@ namespace MediaBrowser.Providers.Manager
var currentItem = item;
var providersWithChanges = providers.OfType<IHasChangeMonitor>()
- .Where(i => i.HasChanged(currentItem, options.DirectoryService, currentItem.DateLastSaved))
+ .Where(i => HasChanged(currentItem, i, currentItem.DateLastSaved, options.DirectoryService))
.Cast<IMetadataProvider<TItemType>>()
.ToList();
@@ -242,11 +242,8 @@ namespace MediaBrowser.Providers.Manager
if (!runAllProviders)
{
- // Avoid implicitly captured closure
- var currentItem = item;
-
providers = providers.OfType<IHasChangeMonitor>()
- .Where(i => i.HasChanged(currentItem, options.DirectoryService, dateLastImageRefresh.Value))
+ .Where(i => HasChanged(item, i, dateLastImageRefresh.Value, options.DirectoryService))
.Cast<IImageProvider>()
.ToList();
}
@@ -438,6 +435,19 @@ namespace MediaBrowser.Providers.Manager
return 0;
}
}
+
+ private bool HasChanged(IHasMetadata item, IHasChangeMonitor changeMonitor, DateTime date, IDirectoryService directoryService)
+ {
+ try
+ {
+ return changeMonitor.HasChanged(item, directoryService, date);
+ }
+ catch (Exception ex)
+ {
+ Logger.ErrorException("Error in {0}.HasChanged", ex, changeMonitor.GetType().Name);
+ return false;
+ }
+ }
}
public class RefreshResult