diff options
| -rw-r--r-- | MediaBrowser.Api/Images/ImageService.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Api/ItemRefreshService.cs | 37 |
2 files changed, 35 insertions, 16 deletions
diff --git a/MediaBrowser.Api/Images/ImageService.cs b/MediaBrowser.Api/Images/ImageService.cs index 3074b0d5b..46dac4070 100644 --- a/MediaBrowser.Api/Images/ImageService.cs +++ b/MediaBrowser.Api/Images/ImageService.cs @@ -785,19 +785,7 @@ namespace MediaBrowser.Api.Images await _providerManager.SaveImage(entity, memoryStream, mimeType, imageType, imageIndex, CancellationToken.None).ConfigureAwait(false); - var user = entity as User; - - if (user != null) - { - await _userManager.UpdateUser(user).ConfigureAwait(false); - } - else - { - await _libraryManager.UpdateItem(entity, ItemUpdateType.ImageUpdate, CancellationToken.None) - .ConfigureAwait(false); - } - - await entity.RefreshMetadata(CancellationToken.None, allowSlowProviders: false).ConfigureAwait(false); + await entity.RefreshMetadata(CancellationToken.None, forceRefresh: true, forceSave: true, allowSlowProviders: false).ConfigureAwait(false); } } } diff --git a/MediaBrowser.Api/ItemRefreshService.cs b/MediaBrowser.Api/ItemRefreshService.cs index a338f6ad3..71f07fb35 100644 --- a/MediaBrowser.Api/ItemRefreshService.cs +++ b/MediaBrowser.Api/ItemRefreshService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Dto; +using System.Linq; +using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using ServiceStack.ServiceHost; @@ -221,8 +222,17 @@ namespace MediaBrowser.Api if (folder != null) { - await folder.ValidateChildren(new Progress<double>(), CancellationToken.None, request.Recursive, - request.Forced).ConfigureAwait(false); + // Collection folders don't validate their children so we'll have to simulate that here + var collectionFolder = folder as CollectionFolder; + + if (collectionFolder != null) + { + await RefreshCollectionFolderChildren(request, collectionFolder).ConfigureAwait(false); + } + else + { + await folder.ValidateChildren(new Progress<double>(), CancellationToken.None, request.Recursive, request.Forced).ConfigureAwait(false); + } } } catch (Exception ex) @@ -230,5 +240,26 @@ namespace MediaBrowser.Api Logger.ErrorException("Error refreshing library", ex); } } + + /// <summary> + /// Refreshes the collection folder children. + /// </summary> + /// <param name="request">The request.</param> + /// <param name="collectionFolder">The collection folder.</param> + /// <returns>Task.</returns> + private async Task RefreshCollectionFolderChildren(RefreshItem request, CollectionFolder collectionFolder) + { + foreach (var child in collectionFolder.Children.ToList()) + { + await child.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false); + + var folder = child as Folder; + + if (folder != null) + { + await folder.ValidateChildren(new Progress<double>(), CancellationToken.None, request.Recursive, request.Forced).ConfigureAwait(false); + } + } + } } } |
