aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
authorTechywarrior <techywarrior@gmail.com>2013-05-02 21:39:34 -0700
committerTechywarrior <techywarrior@gmail.com>2013-05-02 21:39:34 -0700
commit8095f7200b1bd79bc30572a3ebde03f34a6b9e01 (patch)
tree42d664de774dc7744fc133be3f3a646e3db056eb /MediaBrowser.Controller/Entities
parentf58c26afaa94b812c06004145999336bb77e4629 (diff)
parent9fdf5d1c4b488fe53e557870cacdf02b1b7fd4a2 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs34
-rw-r--r--MediaBrowser.Controller/Entities/IndexFolder.cs16
3 files changed, 17 insertions, 35 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 10fd3e79e6..48bfd8075c 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -968,7 +968,7 @@ namespace MediaBrowser.Controller.Entities
{
cancellationToken.ThrowIfCancellationRequested();
- await LibraryManager.SaveItem(this, cancellationToken).ConfigureAwait(false);
+ await LibraryManager.UpdateItem(this, cancellationToken).ConfigureAwait(false);
}
return changed;
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index a22daab227..bd2fa742eb 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -557,8 +557,6 @@ namespace MediaBrowser.Controller.Entities
cancellationToken.ThrowIfCancellationRequested();
- var changedArgs = new ChildrenChangedEventArgs(this);
-
//get the current valid children from filesystem (or wherever)
var nonCachedChildren = GetNonCachedChildren();
@@ -571,6 +569,7 @@ namespace MediaBrowser.Controller.Entities
//create a list for our validated children
var validChildren = new ConcurrentBag<Tuple<BaseItem, bool>>();
+ var newItems = new ConcurrentBag<BaseItem>();
cancellationToken.ThrowIfCancellationRequested();
@@ -592,7 +591,6 @@ namespace MediaBrowser.Controller.Entities
{
EntityResolutionHelper.EnsureDates(currentChild, child.ResolveArgs);
- changedArgs.AddUpdatedItem(currentChild);
validChildren.Add(new Tuple<BaseItem, bool>(currentChild, true));
}
else
@@ -603,36 +601,36 @@ namespace MediaBrowser.Controller.Entities
else
{
//brand new item - needs to be added
- changedArgs.AddNewItem(child);
+ newItems.Add(child);
validChildren.Add(new Tuple<BaseItem, bool>(child, true));
}
});
// If any items were added or removed....
- if (!changedArgs.ItemsAdded.IsEmpty || currentChildren.Count != validChildren.Count)
+ if (!newItems.IsEmpty || currentChildren.Count != validChildren.Count)
{
var newChildren = validChildren.Select(c => c.Item1).ToList();
//that's all the new and changed ones - now see if there are any that are missing
- changedArgs.ItemsRemoved = currentChildren.Values.Except(newChildren).ToList();
-
- foreach (var item in changedArgs.ItemsRemoved)
- {
- Logger.Debug("** " + item.Name + " Removed from library.");
- }
+ var itemsRemoved = currentChildren.Values.Except(newChildren).ToList();
var childrenReplaced = false;
- if (changedArgs.ItemsRemoved.Count > 0)
+ if (itemsRemoved.Count > 0)
{
ActualChildren = new ConcurrentBag<BaseItem>(newChildren);
childrenReplaced = true;
+
+ foreach (var item in itemsRemoved)
+ {
+ LibraryManager.ReportItemRemoved(item);
+ }
}
var saveTasks = new List<Task>();
- foreach (var item in changedArgs.ItemsAdded)
+ foreach (var item in newItems)
{
Logger.Debug("** " + item.Name + " Added to library.");
@@ -647,23 +645,15 @@ namespace MediaBrowser.Controller.Entities
saveTasks.Clear();
}
- saveTasks.Add(LibraryManager.SaveItem(item, CancellationToken.None));
+ saveTasks.Add(LibraryManager.CreateItem(item, CancellationToken.None));
}
await Task.WhenAll(saveTasks).ConfigureAwait(false);
- //and save children in repo...
- Logger.Debug("*** Saving " + newChildren.Count + " children for " + Name);
await LibraryManager.SaveChildren(Id, newChildren, CancellationToken.None).ConfigureAwait(false);
- }
- if (changedArgs.HasChange)
- {
//force the indexes to rebuild next time
IndexCache.Clear();
-
- //and fire event
- LibraryManager.ReportLibraryChanged(changedArgs);
}
progress.Report(10);
diff --git a/MediaBrowser.Controller/Entities/IndexFolder.cs b/MediaBrowser.Controller/Entities/IndexFolder.cs
index 13fcba4896..bbfb01fc65 100644
--- a/MediaBrowser.Controller/Entities/IndexFolder.cs
+++ b/MediaBrowser.Controller/Entities/IndexFolder.cs
@@ -1,11 +1,11 @@
using MediaBrowser.Common.Extensions;
+using MediaBrowser.Model.Entities;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
using System.Threading.Tasks;
-using MediaBrowser.Model.Entities;
namespace MediaBrowser.Controller.Entities
{
@@ -196,18 +196,10 @@ namespace MediaBrowser.Controller.Entities
/// <param name="allowSlowProviders">if set to <c>true</c> [allow slow providers].</param>
/// <param name="resetResolveArgs">if set to <c>true</c> [reset resolve args].</param>
/// <returns>Task{System.Boolean}.</returns>
- public override async Task<bool> RefreshMetadata(CancellationToken cancellationToken, bool forceSave = false, bool forceRefresh = false, bool allowSlowProviders = true, bool resetResolveArgs = true)
+ public override Task<bool> RefreshMetadata(CancellationToken cancellationToken, bool forceSave = false, bool forceRefresh = false, bool allowSlowProviders = true, bool resetResolveArgs = true)
{
- if (ShadowItem != null)
- {
- var changed = await ShadowItem.RefreshMetadata(cancellationToken, forceSave, forceRefresh, allowSlowProviders, resetResolveArgs).ConfigureAwait(false);
-
- cancellationToken.ThrowIfCancellationRequested();
-
- SetShadowValues();
- return changed;
- }
- return false;
+ // We should never get in here since these are not part of the library
+ return Task.FromResult(false);
}
}
}