diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-05-11 10:41:30 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2016-05-11 10:41:30 -0400 |
| commit | e53b89063f50b5be2b54486dd503a6270d602346 (patch) | |
| tree | ec87a765d501b0e7c0581e7700478cc2a7b2844b /MediaBrowser.Server.Implementations/Library | |
| parent | 237fc241009fa02741b0251db983aa380c1902ea (diff) | |
| parent | 3118196ac6639dd719f63888ccb16a33b4a4bc7e (diff) | |
Merge pull request #1728 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library')
3 files changed, 78 insertions, 34 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/UserDataManager.cs b/MediaBrowser.Server.Implementations/Library/UserDataManager.cs index f637160be9..0e211937fd 100644 --- a/MediaBrowser.Server.Implementations/Library/UserDataManager.cs +++ b/MediaBrowser.Server.Implementations/Library/UserDataManager.cs @@ -140,6 +140,54 @@ namespace MediaBrowser.Server.Implementations.Library return Repository.GetAllUserData(userId); } + public UserItemData GetUserData(Guid userId, List<string> keys) + { + if (userId == Guid.Empty) + { + throw new ArgumentNullException("userId"); + } + if (keys == null) + { + throw new ArgumentNullException("keys"); + } + + lock (_userData) + { + foreach (var key in keys) + { + var cacheKey = GetCacheKey(userId, key); + UserItemData value; + if (_userData.TryGetValue(cacheKey, out value)) + { + return value; + } + + value = Repository.GetUserData(userId, key); + + if (value != null) + { + _userData[cacheKey] = value; + return value; + } + } + + if (keys.Count > 0) + { + var key = keys[0]; + var cacheKey = GetCacheKey(userId, key); + var userdata = new UserItemData + { + UserId = userId, + Key = key + }; + _userData[cacheKey] = userdata; + return userdata; + } + + return null; + } + } + /// <summary> /// Gets the user data. /// </summary> @@ -166,25 +214,20 @@ namespace MediaBrowser.Server.Implementations.Library return value; } - value = GetUserDataFromRepository(userId, key); - _userData[cacheKey] = value; - return value; - } - } - - private UserItemData GetUserDataFromRepository(Guid userId, string key) - { - var data = Repository.GetUserData(userId, key); + value = Repository.GetUserData(userId, key); - if (data == null) - { - data = new UserItemData + if (value == null) { - UserId = userId, - Key = key - }; + value = new UserItemData + { + UserId = userId, + Key = key + }; + } + + _userData[cacheKey] = value; + return value; } - return data; } /// <summary> @@ -200,22 +243,22 @@ namespace MediaBrowser.Server.Implementations.Library public UserItemData GetUserData(IHasUserData user, IHasUserData item) { - return GetUserData(user.Id, item.GetUserDataKeys().First()); + return GetUserData(user.Id, item); } public UserItemData GetUserData(string userId, IHasUserData item) { - return GetUserData(userId, item.GetUserDataKeys().First()); + return GetUserData(new Guid(userId), item); } public UserItemData GetUserData(Guid userId, IHasUserData item) { - return GetUserData(userId, item.GetUserDataKeys().First()); + return GetUserData(userId, item.GetUserDataKeys()); } public UserItemDataDto GetUserDataDto(IHasUserData item, User user) { - var userData = GetUserData(user.Id, item.GetUserDataKeys().First()); + var userData = GetUserData(user.Id, item); var dto = GetUserItemDataDto(userData); item.FillUserDataDtoValues(dto, userData, user); @@ -302,10 +345,5 @@ namespace MediaBrowser.Server.Implementations.Library return playedToCompletion; } - - public UserItemData GetUserData(string userId, string key) - { - return GetUserData(new Guid(userId), key); - } } } diff --git a/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs index 00dc8e6a10..c1803b5e4c 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs @@ -2,6 +2,7 @@ using MediaBrowser.Controller.Library; using MediaBrowser.Model.Logging; using System; +using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -34,20 +35,25 @@ namespace MediaBrowser.Server.Implementations.Library.Validators /// <returns>Task.</returns> public async Task Run(IProgress<double> progress, CancellationToken cancellationToken) { - var items = _libraryManager.GetItemList(new InternalItemsQuery - { - IncludeItemTypes = new[] { typeof(Studio).Name } - - }).ToList(); + var items = _libraryManager.RootFolder.GetRecursiveChildren(i => true) + .SelectMany(i => i.Studios) + .DistinctNames() + .ToList(); var numComplete = 0; var count = items.Count; - foreach (var item in items) + var validIds = new List<Guid>(); + + foreach (var name in items) { try { - await item.RefreshMetadata(cancellationToken).ConfigureAwait(false); + var itemByName = _libraryManager.GetStudio(name); + + validIds.Add(itemByName.Id); + + await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false); } catch (OperationCanceledException) { @@ -56,7 +62,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators } catch (Exception ex) { - _logger.ErrorException("Error refreshing {0}", ex, item.Name); + _logger.ErrorException("Error refreshing {0}", ex, name); } numComplete++; diff --git a/MediaBrowser.Server.Implementations/Library/Validators/YearsPostScanTask.cs b/MediaBrowser.Server.Implementations/Library/Validators/YearsPostScanTask.cs index a6dbb99da9..7f52a4506f 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/YearsPostScanTask.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/YearsPostScanTask.cs @@ -25,7 +25,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators var count = maxYear - yearNumber + 1; var numComplete = 0; - while (yearNumber < DateTime.UtcNow.Year + 3) + while (yearNumber < maxYear) { try { |
