From 767cdc1f6f6a63ce997fc9476911e2c361f9d402 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Wed, 20 Feb 2013 20:33:05 -0500 Subject: Pushing missing changes --- .../Resolvers/FolderResolver.cs | 107 ++++++++++++++------- 1 file changed, 71 insertions(+), 36 deletions(-) (limited to 'MediaBrowser.Controller/Resolvers/FolderResolver.cs') diff --git a/MediaBrowser.Controller/Resolvers/FolderResolver.cs b/MediaBrowser.Controller/Resolvers/FolderResolver.cs index 028c85f862..e37c18692d 100644 --- a/MediaBrowser.Controller/Resolvers/FolderResolver.cs +++ b/MediaBrowser.Controller/Resolvers/FolderResolver.cs @@ -1,36 +1,71 @@ -using MediaBrowser.Controller.Entities; -using MediaBrowser.Controller.Library; -using System.ComponentModel.Composition; - -namespace MediaBrowser.Controller.Resolvers -{ - [Export(typeof(IBaseItemResolver))] - public class FolderResolver : BaseFolderResolver - { - public override ResolverPriority Priority - { - get { return ResolverPriority.Last; } - } - - protected override Folder Resolve(ItemResolveEventArgs args) - { - if (args.IsDirectory) - { - return new Folder(); - } - - return null; - } - } - - public abstract class BaseFolderResolver : BaseItemResolver - where TItemType : Folder, new() - { - protected override void SetInitialItemValues(TItemType item, ItemResolveEventArgs args) - { - base.SetInitialItemValues(item, args); - - item.IsRoot = args.Parent == null; - } - } -} +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Library; +using System.ComponentModel.Composition; + +namespace MediaBrowser.Controller.Resolvers +{ + /// + /// Class FolderResolver + /// + [Export(typeof(IBaseItemResolver))] + public class FolderResolver : BaseFolderResolver + { + /// + /// Gets the priority. + /// + /// The priority. + public override ResolverPriority Priority + { + get { return ResolverPriority.Last; } + } + + /// + /// Resolves the specified args. + /// + /// The args. + /// Folder. + protected override Folder Resolve(ItemResolveArgs args) + { + if (args.IsDirectory) + { + if (args.IsPhysicalRoot) + { + return new AggregateFolder(); + } + if (args.IsRoot) + { + return new UserRootFolder(); //if we got here and still a root - must be user root + } + if (args.IsVf) + { + return new CollectionFolder(); + } + + return new Folder(); + } + + return null; + } + } + + /// + /// Class BaseFolderResolver + /// + /// The type of the T item type. + public abstract class BaseFolderResolver : BaseItemResolver + where TItemType : Folder, new() + { + /// + /// Sets the initial item values. + /// + /// The item. + /// The args. + protected override void SetInitialItemValues(TItemType item, ItemResolveArgs args) + { + base.SetInitialItemValues(item, args); + + item.IsRoot = args.Parent == null; + item.IsPhysicalRoot = args.IsPhysicalRoot; + } + } +} -- cgit v1.2.3