aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Collections/CollectionManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Collections/CollectionManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Collections/CollectionManager.cs29
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);
+ }
}
}