diff options
Diffstat (limited to 'MediaBrowser.Controller/Entities')
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 43 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Genre.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Movies/Movie.cs | 21 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Person.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Studio.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Episode.cs | 26 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Season.cs | 25 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Series.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Year.cs | 8 |
10 files changed, 76 insertions, 91 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 2cb8ac794..ccaabd438 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -3,6 +3,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Localization; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Model.Entities; @@ -183,23 +184,18 @@ namespace MediaBrowser.Controller.Entities /// <summary> /// The _file system stamp /// </summary> - private Guid? _fileSystemStamp; + private string _fileSystemStamp; /// <summary> /// Gets a directory stamp, in the form of a string, that can be used for /// comparison purposes to determine if the file system entries for this item have changed. /// </summary> /// <value>The file system stamp.</value> [IgnoreDataMember] - public Guid FileSystemStamp + public string FileSystemStamp { get { - if (!_fileSystemStamp.HasValue) - { - _fileSystemStamp = GetFileSystemStamp(); - } - - return _fileSystemStamp.Value; + return _fileSystemStamp ?? (_fileSystemStamp = GetFileSystemStamp()); } } @@ -221,12 +217,12 @@ namespace MediaBrowser.Controller.Entities /// comparison purposes to determine if the file system entries for this item have changed. /// </summary> /// <returns>Guid.</returns> - private Guid GetFileSystemStamp() + private string GetFileSystemStamp() { // If there's no path or the item is a file, there's nothing to do if (LocationType != LocationType.FileSystem || !ResolveArgs.IsDirectory) { - return Guid.Empty; + return string.Empty; } var sb = new StringBuilder(); @@ -242,7 +238,7 @@ namespace MediaBrowser.Controller.Entities sb.Append(file.cFileName); } - return sb.ToString().GetMD5(); + return sb.ToString(); } /// <summary> @@ -820,21 +816,12 @@ namespace MediaBrowser.Controller.Entities } /// <summary> - /// The _user data id + /// Gets the user data key. /// </summary> - protected Guid _userDataId; //cache this so it doesn't have to be re-constructed on every reference - /// <summary> - /// Return the id that should be used to key user data for this item. - /// Default is just this Id but subclasses can use provider Ids for transportability. - /// </summary> - /// <value>The user data id.</value> - [IgnoreDataMember] - public virtual Guid UserDataId + /// <returns>System.String.</returns> + public virtual string GetUserDataKey() { - get - { - return _userDataId == Guid.Empty ? (_userDataId = Id) : _userDataId; - } + return Id.ToString(); } /// <summary> @@ -1151,14 +1138,16 @@ namespace MediaBrowser.Controller.Entities /// <param name="userManager">The user manager.</param> /// <returns>Task.</returns> /// <exception cref="System.ArgumentNullException"></exception> - public virtual async Task SetPlayedStatus(User user, bool wasPlayed, IUserManager userManager) + public virtual async Task SetPlayedStatus(User user, bool wasPlayed, IUserDataRepository userManager) { if (user == null) { throw new ArgumentNullException(); } - var data = await userManager.GetUserData(user.Id, UserDataId).ConfigureAwait(false); + var key = GetUserDataKey(); + + var data = await userManager.GetUserData(user.Id, key).ConfigureAwait(false); if (wasPlayed) { @@ -1181,7 +1170,7 @@ namespace MediaBrowser.Controller.Entities data.Played = wasPlayed; - await userManager.SaveUserData(user.Id, UserDataId, data, CancellationToken.None).ConfigureAwait(false); + await userManager.SaveUserData(user.Id, key, data, CancellationToken.None).ConfigureAwait(false); } /// <summary> diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index eefce2fd3..fed6bb7de 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -3,6 +3,7 @@ using MediaBrowser.Common.Progress; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Localization; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Model.Entities; using System; @@ -809,7 +810,7 @@ namespace MediaBrowser.Controller.Entities /// <param name="wasPlayed">if set to <c>true</c> [was played].</param> /// <param name="userManager">The user manager.</param> /// <returns>Task.</returns> - public override async Task SetPlayedStatus(User user, bool wasPlayed, IUserManager userManager) + public override async Task SetPlayedStatus(User user, bool wasPlayed, IUserDataRepository userManager) { await base.SetPlayedStatus(user, wasPlayed, userManager).ConfigureAwait(false); diff --git a/MediaBrowser.Controller/Entities/Genre.cs b/MediaBrowser.Controller/Entities/Genre.cs index d5e8afb20..619c7a12b 100644 --- a/MediaBrowser.Controller/Entities/Genre.cs +++ b/MediaBrowser.Controller/Entities/Genre.cs @@ -6,5 +6,13 @@ namespace MediaBrowser.Controller.Entities /// </summary> public class Genre : BaseItem { + /// <summary> + /// Gets the user data key. + /// </summary> + /// <returns>System.String.</returns> + public override string GetUserDataKey() + { + return Name; + } } } diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index d08588077..b70ac2b3b 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -1,7 +1,5 @@ -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.IO; +using MediaBrowser.Controller.IO; using MediaBrowser.Model.Entities; -using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -30,21 +28,12 @@ namespace MediaBrowser.Controller.Entities.Movies } /// <summary> - /// Override to use tmdb or imdb id so it will stick if the item moves physical locations + /// Gets the user data key. /// </summary> - /// <value>The user data id.</value> - [IgnoreDataMember] - public override Guid UserDataId + /// <returns>System.String.</returns> + public override string GetUserDataKey() { - get - { - if (_userDataId == Guid.Empty) - { - var baseId = this.GetProviderId(MetadataProviders.Tmdb) ?? this.GetProviderId(MetadataProviders.Imdb); - _userDataId = baseId != null ? baseId.GetMD5() : Id; - } - return _userDataId; - } + return this.GetProviderId(MetadataProviders.Tmdb) ?? this.GetProviderId(MetadataProviders.Imdb) ?? base.GetUserDataKey(); } /// <summary> diff --git a/MediaBrowser.Controller/Entities/Person.cs b/MediaBrowser.Controller/Entities/Person.cs index 5c92c019b..f5570448d 100644 --- a/MediaBrowser.Controller/Entities/Person.cs +++ b/MediaBrowser.Controller/Entities/Person.cs @@ -6,6 +6,14 @@ namespace MediaBrowser.Controller.Entities /// </summary> public class Person : BaseItem { + /// <summary> + /// Gets the user data key. + /// </summary> + /// <returns>System.String.</returns> + public override string GetUserDataKey() + { + return Name; + } } /// <summary> diff --git a/MediaBrowser.Controller/Entities/Studio.cs b/MediaBrowser.Controller/Entities/Studio.cs index a255849e6..06511d959 100644 --- a/MediaBrowser.Controller/Entities/Studio.cs +++ b/MediaBrowser.Controller/Entities/Studio.cs @@ -6,5 +6,13 @@ namespace MediaBrowser.Controller.Entities /// </summary> public class Studio : BaseItem { + /// <summary> + /// Gets the user data key. + /// </summary> + /// <returns>System.String.</returns> + public override string GetUserDataKey() + { + return Name; + } } } diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs index 7588e4e69..dd1434cea 100644 --- a/MediaBrowser.Controller/Entities/TV/Episode.cs +++ b/MediaBrowser.Controller/Entities/TV/Episode.cs @@ -49,27 +49,19 @@ namespace MediaBrowser.Controller.Entities.TV } /// <summary> - /// Override to use the provider Ids + season and episode number so it will be portable + /// Gets the user data key. /// </summary> - /// <value>The user data id.</value> - [IgnoreDataMember] - public override Guid UserDataId + /// <returns>System.String.</returns> + public override string GetUserDataKey() { - get + if (Series != null) { - if (_userDataId == Guid.Empty) - { - var baseId = Series != null ? Series.GetProviderId(MetadataProviders.Tvdb) ?? Series.GetProviderId(MetadataProviders.Tvcom) : null; - if (baseId != null) - { - var seasonNo = Season != null ? Season.IndexNumber ?? 0 : 0; - var epNo = IndexNumber ?? 0; - baseId = baseId + seasonNo.ToString("000") + epNo.ToString("000"); - } - _userDataId = baseId != null ? baseId.GetMD5() : Id; - } - return _userDataId; + var seasonNo = Season != null ? Season.IndexNumber ?? 0 : 0; + var epNo = IndexNumber ?? 0; + return Series.GetUserDataKey() + seasonNo.ToString("000") + epNo.ToString("000"); } + + return base.GetUserDataKey(); } /// <summary> diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index 2f2bee172..2f3f7387c 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -67,27 +67,18 @@ namespace MediaBrowser.Controller.Entities.TV } /// <summary> - /// Override to use the provider Ids + season number so it will be portable + /// Gets the user data key. /// </summary> - /// <value>The user data id.</value> - [IgnoreDataMember] - public override Guid UserDataId + /// <returns>System.String.</returns> + public override string GetUserDataKey() { - get + if (Series != null) { - if (_userDataId == Guid.Empty) - { - var baseId = Series != null ? Series.GetProviderId(MetadataProviders.Tvdb) ?? Series.GetProviderId(MetadataProviders.Tvcom) : null; - if (baseId != null) - { - var seasonNo = IndexNumber ?? 0; - baseId = baseId + seasonNo.ToString("000"); - } - - _userDataId = baseId != null ? baseId.GetMD5() : Id; - } - return _userDataId; + var seasonNo = IndexNumber ?? 0; + return Series.GetUserDataKey() + seasonNo.ToString("000"); } + + return base.GetUserDataKey(); } /// <summary> diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index 8a56e45cd..15b97f694 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -44,21 +44,12 @@ namespace MediaBrowser.Controller.Entities.TV } /// <summary> - /// Override to use the provider Ids so it will be portable + /// Gets the user data key. /// </summary> - /// <value>The user data id.</value> - [IgnoreDataMember] - public override Guid UserDataId + /// <returns>System.String.</returns> + public override string GetUserDataKey() { - get - { - if (_userDataId == Guid.Empty) - { - var baseId = this.GetProviderId(MetadataProviders.Tvdb) ?? this.GetProviderId(MetadataProviders.Tvcom); - _userDataId = baseId != null ? baseId.GetMD5() : Id; - } - return _userDataId; - } + return this.GetProviderId(MetadataProviders.Tvdb) ?? this.GetProviderId(MetadataProviders.Tvcom) ?? base.GetUserDataKey(); } // Studio, Genre and Rating will all be the same so makes no sense to index by these diff --git a/MediaBrowser.Controller/Entities/Year.cs b/MediaBrowser.Controller/Entities/Year.cs index 9150057c8..1e4e6cb06 100644 --- a/MediaBrowser.Controller/Entities/Year.cs +++ b/MediaBrowser.Controller/Entities/Year.cs @@ -6,5 +6,13 @@ namespace MediaBrowser.Controller.Entities /// </summary> public class Year : BaseItem { + /// <summary> + /// Gets the user data key. + /// </summary> + /// <returns>System.String.</returns> + public override string GetUserDataKey() + { + return Name; + } } } |
