|
@@ -375,6 +375,28 @@ namespace MediaBrowser.Controller.Entities
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private Dictionary<Guid, BaseItem> GetActualChildrenDictionary()
|
|
|
+ {
|
|
|
+ var dictionary = new Dictionary<Guid, BaseItem>();
|
|
|
+
|
|
|
+ foreach (var child in ActualChildren)
|
|
|
+ {
|
|
|
+ var id = child.Id;
|
|
|
+ if (dictionary.ContainsKey(id))
|
|
|
+ {
|
|
|
+ Logger.Error( "Found folder containing items with duplicate id. Path: {0}, Child Name: {1}",
|
|
|
+ Path ?? Name,
|
|
|
+ child.Path ?? child.Name);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dictionary[id] = child;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return dictionary;
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// Validates the children internal.
|
|
|
/// </summary>
|
|
@@ -413,7 +435,7 @@ namespace MediaBrowser.Controller.Entities
|
|
|
progress.Report(5);
|
|
|
|
|
|
//build a dictionary of the current children we have now by Id so we can compare quickly and easily
|
|
|
- var currentChildren = ActualChildren.ToDictionary(i => i.Id);
|
|
|
+ var currentChildren = GetActualChildrenDictionary();
|
|
|
|
|
|
//create a list for our validated children
|
|
|
var newItems = new List<BaseItem>();
|