From 785deff188ba51243739b827dbe42b5645404367 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 13 Apr 2013 14:02:30 -0400 Subject: removed excess hashing in providers and made user data key-based --- .../Providers/BaseMetadataProvider.cs | 44 +++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'MediaBrowser.Controller/Providers/BaseMetadataProvider.cs') diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs index aaf3fe6bfb..3f71e398a3 100644 --- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs @@ -29,19 +29,7 @@ namespace MediaBrowser.Controller.Providers /// /// The _id /// - protected Guid _id; - /// - /// Gets the id. - /// - /// The id. - public virtual Guid Id - { - get - { - if (_id == Guid.Empty) _id = GetType().FullName.GetMD5(); - return _id; - } - } + protected readonly Guid Id; /// /// Supportses the specified item. @@ -105,6 +93,7 @@ namespace MediaBrowser.Controller.Providers Logger = logManager.GetLogger(GetType().Name); LogManager = logManager; ConfigurationManager = configurationManager; + Id = GetType().FullName.GetMD5(); Initialize(); } @@ -130,8 +119,14 @@ namespace MediaBrowser.Controller.Providers { throw new ArgumentNullException("item"); } - - var data = item.ProviderData.GetValueOrDefault(Id, new BaseProviderInfo { ProviderId = Id }); + + BaseProviderInfo data; + + if (!item.ProviderData.TryGetValue(Id, out data)) + { + data = new BaseProviderInfo(); + } + data.LastRefreshed = value; data.LastRefreshStatus = status; data.ProviderVersion = providerVersion; @@ -155,7 +150,7 @@ namespace MediaBrowser.Controller.Providers { SetLastRefreshed(item, value, ProviderVersion, status); } - + /// /// Returns whether or not this provider should be re-fetched. Default functionality can /// compare a provided date with a last refresh time. This can be overridden for more complex @@ -171,9 +166,14 @@ namespace MediaBrowser.Controller.Providers throw new ArgumentNullException(); } - var providerInfo = item.ProviderData.GetValueOrDefault(Id, new BaseProviderInfo()); + BaseProviderInfo data; - return NeedsRefreshInternal(item, providerInfo); + if (!item.ProviderData.TryGetValue(Id, out data)) + { + data = new BaseProviderInfo(); + } + + return NeedsRefreshInternal(item, data); } /// @@ -194,7 +194,7 @@ namespace MediaBrowser.Controller.Providers { throw new ArgumentNullException("providerInfo"); } - + if (CompareDate(item) > providerInfo.LastRefreshed) { return true; @@ -209,7 +209,7 @@ namespace MediaBrowser.Controller.Providers { return true; } - + return false; } @@ -221,7 +221,7 @@ namespace MediaBrowser.Controller.Providers /// true if [has file system stamp changed] [the specified item]; otherwise, false. protected bool HasFileSystemStampChanged(BaseItem item, BaseProviderInfo providerInfo) { - return GetCurrentFileSystemStamp(item) != providerInfo.FileSystemStamp; + return !string.Equals(GetCurrentFileSystemStamp(item), providerInfo.FileSystemStamp); } /// @@ -279,7 +279,7 @@ namespace MediaBrowser.Controller.Providers /// /// The item. /// Guid. - private Guid GetCurrentFileSystemStamp(BaseItem item) + private string GetCurrentFileSystemStamp(BaseItem item) { if (UseParentFileSystemStamp(item) && item.Parent != null) { -- cgit v1.2.3