mirror of
				https://github.com/jellyfin/jellyfin.git
				synced 2025-11-03 19:17:24 -05:00 
			
		
		
		
	Added Add/Remove/Clear Children protected methods
This commit is contained in:
		
							parent
							
								
									4a1d8771a8
								
							
						
					
					
						commit
						04468452ea
					
				@ -103,7 +103,33 @@ namespace MediaBrowser.Controller.Entities
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            await LibraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false);
 | 
					            await LibraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await ItemRepository.SaveChildren(Id, _children.ToList().Select(i => i.Id), cancellationToken).ConfigureAwait(false);
 | 
					            await ItemRepository.SaveChildren(Id, _children.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        protected void AddChildrenInternal(IEnumerable<BaseItem> children)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            foreach (var child in children)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _children.Add(child);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        protected void RemoveChildrenInternal(IEnumerable<BaseItem> children)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            lock (ChildrenSyncLock)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                _children = new ConcurrentBag<BaseItem>(_children.Except(children));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        protected void ClearChildrenInternal()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            BaseItem removed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            while (_children.TryTake(out removed))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
@ -132,22 +158,13 @@ namespace MediaBrowser.Controller.Entities
 | 
				
			|||||||
        /// <exception cref="System.InvalidOperationException">Unable to remove  + item.Name</exception>
 | 
					        /// <exception cref="System.InvalidOperationException">Unable to remove  + item.Name</exception>
 | 
				
			||||||
        public Task RemoveChild(BaseItem item, CancellationToken cancellationToken)
 | 
					        public Task RemoveChild(BaseItem item, CancellationToken cancellationToken)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            List<BaseItem> newChildren;
 | 
					            RemoveChildrenInternal(new[] { item });
 | 
				
			||||||
 | 
					 | 
				
			||||||
            lock (ChildrenSyncLock)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                newChildren = _children.ToList();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                newChildren.Remove(item);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                _children = new ConcurrentBag<BaseItem>(newChildren);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            item.Parent = null;
 | 
					            item.Parent = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            LibraryManager.ReportItemRemoved(item);
 | 
					            LibraryManager.ReportItemRemoved(item);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ItemRepository.SaveChildren(Id, newChildren.Select(i => i.Id), cancellationToken);
 | 
					            return ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #region Indexing
 | 
					        #region Indexing
 | 
				
			||||||
@ -726,7 +743,7 @@ namespace MediaBrowser.Controller.Entities
 | 
				
			|||||||
                    Logger.Debug("** " + item.Name + " Added to library.");
 | 
					                    Logger.Debug("** " + item.Name + " Added to library.");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                await ItemRepository.SaveChildren(Id, _children.ToList().Select(i => i.Id), cancellationToken).ConfigureAwait(false);
 | 
					                await ItemRepository.SaveChildren(Id, _children.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                //force the indexes to rebuild next time
 | 
					                //force the indexes to rebuild next time
 | 
				
			||||||
                if (IndexCache != null)
 | 
					                if (IndexCache != null)
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@
 | 
				
			|||||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 | 
					<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 | 
				
			||||||
    <metadata>
 | 
					    <metadata>
 | 
				
			||||||
        <id>MediaBrowser.Common.Internal</id>
 | 
					        <id>MediaBrowser.Common.Internal</id>
 | 
				
			||||||
        <version>3.0.202</version>
 | 
					        <version>3.0.203</version>
 | 
				
			||||||
        <title>MediaBrowser.Common.Internal</title>
 | 
					        <title>MediaBrowser.Common.Internal</title>
 | 
				
			||||||
        <authors>Luke</authors>
 | 
					        <authors>Luke</authors>
 | 
				
			||||||
        <owners>ebr,Luke,scottisafool</owners>
 | 
					        <owners>ebr,Luke,scottisafool</owners>
 | 
				
			||||||
@ -12,7 +12,7 @@
 | 
				
			|||||||
        <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
 | 
					        <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
 | 
				
			||||||
        <copyright>Copyright © Media Browser 2013</copyright>
 | 
					        <copyright>Copyright © Media Browser 2013</copyright>
 | 
				
			||||||
        <dependencies>
 | 
					        <dependencies>
 | 
				
			||||||
            <dependency id="MediaBrowser.Common" version="3.0.202" />
 | 
					            <dependency id="MediaBrowser.Common" version="3.0.203" />
 | 
				
			||||||
            <dependency id="NLog" version="2.0.1.2" />
 | 
					            <dependency id="NLog" version="2.0.1.2" />
 | 
				
			||||||
            <dependency id="ServiceStack.Text" version="3.9.58" />
 | 
					            <dependency id="ServiceStack.Text" version="3.9.58" />
 | 
				
			||||||
            <dependency id="SimpleInjector" version="2.3.2" />
 | 
					            <dependency id="SimpleInjector" version="2.3.2" />
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@
 | 
				
			|||||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 | 
					<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 | 
				
			||||||
    <metadata>
 | 
					    <metadata>
 | 
				
			||||||
        <id>MediaBrowser.Common</id>
 | 
					        <id>MediaBrowser.Common</id>
 | 
				
			||||||
        <version>3.0.202</version>
 | 
					        <version>3.0.203</version>
 | 
				
			||||||
        <title>MediaBrowser.Common</title>
 | 
					        <title>MediaBrowser.Common</title>
 | 
				
			||||||
        <authors>Media Browser Team</authors>
 | 
					        <authors>Media Browser Team</authors>
 | 
				
			||||||
        <owners>ebr,Luke,scottisafool</owners>
 | 
					        <owners>ebr,Luke,scottisafool</owners>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@
 | 
				
			|||||||
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 | 
					<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 | 
				
			||||||
    <metadata>
 | 
					    <metadata>
 | 
				
			||||||
        <id>MediaBrowser.Server.Core</id>
 | 
					        <id>MediaBrowser.Server.Core</id>
 | 
				
			||||||
        <version>3.0.202</version>
 | 
					        <version>3.0.203</version>
 | 
				
			||||||
        <title>Media Browser.Server.Core</title>
 | 
					        <title>Media Browser.Server.Core</title>
 | 
				
			||||||
        <authors>Media Browser Team</authors>
 | 
					        <authors>Media Browser Team</authors>
 | 
				
			||||||
        <owners>ebr,Luke,scottisafool</owners>
 | 
					        <owners>ebr,Luke,scottisafool</owners>
 | 
				
			||||||
@ -12,7 +12,7 @@
 | 
				
			|||||||
        <description>Contains core components required to build plugins for Media Browser Server.</description>
 | 
					        <description>Contains core components required to build plugins for Media Browser Server.</description>
 | 
				
			||||||
        <copyright>Copyright © Media Browser 2013</copyright>
 | 
					        <copyright>Copyright © Media Browser 2013</copyright>
 | 
				
			||||||
        <dependencies>
 | 
					        <dependencies>
 | 
				
			||||||
            <dependency id="MediaBrowser.Common" version="3.0.202" />
 | 
					            <dependency id="MediaBrowser.Common" version="3.0.203" />
 | 
				
			||||||
        </dependencies>
 | 
					        </dependencies>
 | 
				
			||||||
    </metadata>
 | 
					    </metadata>
 | 
				
			||||||
    <files>
 | 
					    <files>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user