aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Library/ItemController.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Library/ItemController.cs')
-rw-r--r--MediaBrowser.Controller/Library/ItemController.cs39
1 files changed, 36 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/Library/ItemController.cs b/MediaBrowser.Controller/Library/ItemController.cs
index eb767d9a1..0f9b859b6 100644
--- a/MediaBrowser.Controller/Library/ItemController.cs
+++ b/MediaBrowser.Controller/Library/ItemController.cs
@@ -59,8 +59,8 @@ namespace MediaBrowser.Controller.Library
private async Task<BaseItem> ResolveItem(ItemResolveEventArgs args)
{
- // If that didn't pan out, try the slow ones
- foreach (IBaseItemResolver resolver in Kernel.Instance.EntityResolvers)
+ // Try first priority resolvers
+ foreach (IBaseItemResolver resolver in Kernel.Instance.EntityResolvers.Where(p => p.Priority == ResolverPriority.First))
{
var item = await resolver.ResolvePath(args);
@@ -70,6 +70,39 @@ namespace MediaBrowser.Controller.Library
}
}
+ // Try second priority resolvers
+ foreach (IBaseItemResolver resolver in Kernel.Instance.EntityResolvers.Where(p => p.Priority == ResolverPriority.Second))
+ {
+ var item = await resolver.ResolvePath(args);
+
+ if (item != null)
+ {
+ return item;
+ }
+ }
+
+ // Try third priority resolvers
+ foreach (IBaseItemResolver resolver in Kernel.Instance.EntityResolvers.Where(p => p.Priority == ResolverPriority.Third))
+ {
+ var item = await resolver.ResolvePath(args);
+
+ if (item != null)
+ {
+ return item;
+ }
+ }
+
+ // Try last priority resolvers
+ foreach (IBaseItemResolver resolver in Kernel.Instance.EntityResolvers.Where(p => p.Priority == ResolverPriority.Last))
+ {
+ var item = await resolver.ResolvePath(args);
+
+ if (item != null)
+ {
+ return item;
+ }
+ }
+
return null;
}
@@ -153,7 +186,7 @@ namespace MediaBrowser.Controller.Library
}
BaseItem[] baseItemChildren = await Task<BaseItem>.WhenAll(tasks);
-
+
// Sort them
folder.Children = baseItemChildren.Where(i => i != null).OrderBy(f =>
{