diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-01 01:25:05 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-01 01:25:05 -0500 |
| commit | 04bc137fb30b82e699bc8ea5d84479f01ad6c6ca (patch) | |
| tree | 12712bf02b8a35b0ce6bbc4adfa6c564f8f4ad38 | |
| parent | 58f1a314b5ef3d13c2bc034f8a8949d9e88d1c20 (diff) | |
make dontfetchmeta changes recursive
| -rw-r--r-- | MediaBrowser.Api/ItemUpdateService.cs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs index 95876f1a5..48d292bbc 100644 --- a/MediaBrowser.Api/ItemUpdateService.cs +++ b/MediaBrowser.Api/ItemUpdateService.cs @@ -105,13 +105,27 @@ namespace MediaBrowser.Api Task.WaitAll(task); } - private Task UpdateItem(UpdateItem request) + private async Task UpdateItem(UpdateItem request) { var item = _dtoService.GetItemByDtoId(request.ItemId); + var newEnableInternetProviders = request.EnableInternetProviders ?? true; + var dontFetchMetaChanged = item.DontFetchMeta != !newEnableInternetProviders; + UpdateItem(request, item); - return _libraryManager.UpdateItem(item, ItemUpdateType.MetadataEdit, CancellationToken.None); + await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); + + if (dontFetchMetaChanged && item.IsFolder) + { + var folder = (Folder)item; + + foreach (var child in folder.RecursiveChildren.ToList()) + { + child.DontFetchMeta = !newEnableInternetProviders; + await _libraryManager.UpdateItem(child, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); + } + } } public void Post(UpdatePerson request) |
