aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/Folder.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Entities/Folder.cs')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs102
1 files changed, 48 insertions, 54 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 05965e1b5..97016baff 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -28,7 +28,6 @@ namespace MediaBrowser.Controller.Entities
public List<Guid> ThemeSongIds { get; set; }
public List<Guid> ThemeVideoIds { get; set; }
- public List<string> Tags { get; set; }
public Folder()
{
@@ -36,7 +35,6 @@ namespace MediaBrowser.Controller.Entities
ThemeSongIds = new List<Guid>();
ThemeVideoIds = new List<Guid>();
- Tags = new List<string>();
}
[IgnoreDataMember]
@@ -151,7 +149,15 @@ namespace MediaBrowser.Controller.Entities
await LibraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false);
- await ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false);
+ if (!EnableNewFolderQuerying())
+ {
+ await ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false);
+ }
+ }
+
+ private static bool EnableNewFolderQuerying()
+ {
+ return ConfigurationManager.Configuration.MigrationVersion >= 1;
}
protected void AddChildrenInternal(IEnumerable<BaseItem> children)
@@ -196,21 +202,6 @@ namespace MediaBrowser.Controller.Entities
}
}
- [IgnoreDataMember]
- public override string OfficialRatingForComparison
- {
- get
- {
- // Never want folders to be blocked by "BlockNotRated"
- if (this is Series)
- {
- return base.OfficialRatingForComparison;
- }
-
- return !string.IsNullOrWhiteSpace(base.OfficialRatingForComparison) ? base.OfficialRatingForComparison : "None";
- }
- }
-
/// <summary>
/// Removes the child.
/// </summary>
@@ -224,7 +215,12 @@ namespace MediaBrowser.Controller.Entities
item.SetParent(null);
- return ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken);
+ if (!EnableNewFolderQuerying())
+ {
+ return ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken);
+ }
+
+ return Task.FromResult(true);
}
/// <summary>
@@ -457,32 +453,25 @@ namespace MediaBrowser.Controller.Entities
{
BaseItem currentChild;
- if (currentChildren.TryGetValue(child.Id, out currentChild))
+ if (currentChildren.TryGetValue(child.Id, out currentChild) && IsValidFromResolver(currentChild, child))
{
- if (IsValidFromResolver(currentChild, child))
+ var currentChildLocationType = currentChild.LocationType;
+ if (currentChildLocationType != LocationType.Remote &&
+ currentChildLocationType != LocationType.Virtual)
{
- var currentChildLocationType = currentChild.LocationType;
- if (currentChildLocationType != LocationType.Remote &&
- currentChildLocationType != LocationType.Virtual)
- {
- currentChild.DateModified = child.DateModified;
- }
-
- await UpdateIsOffline(currentChild, false).ConfigureAwait(false);
- validChildren.Add(currentChild);
- }
- else
- {
- newItems.Add(child);
- validChildren.Add(child);
+ currentChild.DateModified = child.DateModified;
}
+
+ await UpdateIsOffline(currentChild, false).ConfigureAwait(false);
+ validChildren.Add(currentChild);
+
+ continue;
}
- else
- {
- // Brand new item - needs to be added
- newItems.Add(child);
- validChildren.Add(child);
- }
+
+ // Brand new item - needs to be added
+ child.SetParent(this);
+ newItems.Add(child);
+ validChildren.Add(child);
}
// If any items were added or removed....
@@ -508,7 +497,6 @@ namespace MediaBrowser.Controller.Entities
}
else
{
- await UpdateIsOffline(item, false).ConfigureAwait(false);
actualRemovals.Add(item);
}
}
@@ -519,6 +507,11 @@ namespace MediaBrowser.Controller.Entities
foreach (var item in actualRemovals)
{
+ Logger.Debug("Removed item: " + item.Path);
+
+ item.SetParent(null);
+ item.IsOffline = false;
+ await LibraryManager.DeleteItem(item, new DeleteOptions { DeleteFileLocation = false }).ConfigureAwait(false);
LibraryManager.ReportItemRemoved(item);
}
}
@@ -527,7 +520,10 @@ namespace MediaBrowser.Controller.Entities
AddChildrenInternal(newItems);
- await ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false);
+ if (!EnableNewFolderQuerying())
+ {
+ await ItemRepository.SaveChildren(Id, ActualChildren.Select(i => i.Id).ToList(), cancellationToken).ConfigureAwait(false);
+ }
}
}
@@ -757,19 +753,16 @@ namespace MediaBrowser.Controller.Entities
/// <returns>IEnumerable{BaseItem}.</returns>
protected IEnumerable<BaseItem> GetCachedChildren()
{
- if (ConfigurationManager.Configuration.DisableStartupScan)
+ if (EnableNewFolderQuerying())
{
- return ItemRepository.GetChildrenItems(Id).Select(RetrieveChild).Where(i => i != null);
- //return ItemRepository.GetItems(new InternalItemsQuery
- //{
- // ParentId = Id
+ return ItemRepository.GetItemList(new InternalItemsQuery
+ {
+ ParentId = Id
- //}).Items.Select(RetrieveChild).Where(i => i != null);
- }
- else
- {
- return ItemRepository.GetChildrenItems(Id).Select(RetrieveChild).Where(i => i != null);
+ }).Select(RetrieveChild).Where(i => i != null);
}
+
+ return ItemRepository.GetChildrenItems(Id).Select(RetrieveChild).Where(i => i != null);
}
private BaseItem RetrieveChild(BaseItem child)
@@ -1182,7 +1175,8 @@ namespace MediaBrowser.Controller.Entities
{
User = user,
Recursive = true,
- IsFolder = false
+ IsFolder = false,
+ IsMissing = false
}).ConfigureAwait(false);