diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Collections/CollectionManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Collections/CollectionManager.cs | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs b/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs index ac27a0ab4..8a19ee431 100644 --- a/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs +++ b/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs @@ -172,30 +172,31 @@ namespace MediaBrowser.Server.Implementations.Collections itemList.Add(item); - if (currentLinkedChildren.Any(i => i.Id == itemId)) + if (currentLinkedChildren.All(i => i.Id != itemId)) { - throw new ArgumentException("Item already exists in collection"); + list.Add(LinkedChild.Create(item)); } - - list.Add(LinkedChild.Create(item)); } - collection.LinkedChildren.AddRange(list); + if (list.Count > 0) + { + collection.LinkedChildren.AddRange(list); - collection.UpdateRatingToContent(); + collection.UpdateRatingToContent(); - await collection.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); + await collection.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false); - _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(_fileSystem)); + _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(_fileSystem)); - if (fireEvent) - { - EventHelper.FireEventIfNotNull(ItemsAddedToCollection, this, new CollectionModifiedEventArgs + if (fireEvent) { - Collection = collection, - ItemsChanged = itemList + EventHelper.FireEventIfNotNull(ItemsAddedToCollection, this, new CollectionModifiedEventArgs + { + Collection = collection, + ItemsChanged = itemList - }, _logger); + }, _logger); + } } } |
