diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-20 20:33:05 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-20 20:33:05 -0500 |
| commit | 767cdc1f6f6a63ce997fc9476911e2c361f9d402 (patch) | |
| tree | 49add55976f895441167c66cfa95e5c7688d18ce /MediaBrowser.Controller/Resolvers/FolderResolver.cs | |
| parent | 845554722efaed872948a9e0f7202e3ef52f1b6e (diff) | |
Pushing missing changes
Diffstat (limited to 'MediaBrowser.Controller/Resolvers/FolderResolver.cs')
| -rw-r--r-- | MediaBrowser.Controller/Resolvers/FolderResolver.cs | 107 |
1 files changed, 71 insertions, 36 deletions
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<Folder>
- {
- 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<TItemType> : BaseItemResolver<TItemType>
- 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 +{ + /// <summary> + /// Class FolderResolver + /// </summary> + [Export(typeof(IBaseItemResolver))] + public class FolderResolver : BaseFolderResolver<Folder> + { + /// <summary> + /// Gets the priority. + /// </summary> + /// <value>The priority.</value> + public override ResolverPriority Priority + { + get { return ResolverPriority.Last; } + } + + /// <summary> + /// Resolves the specified args. + /// </summary> + /// <param name="args">The args.</param> + /// <returns>Folder.</returns> + 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; + } + } + + /// <summary> + /// Class BaseFolderResolver + /// </summary> + /// <typeparam name="TItemType">The type of the T item type.</typeparam> + public abstract class BaseFolderResolver<TItemType> : BaseItemResolver<TItemType> + where TItemType : Folder, new() + { + /// <summary> + /// Sets the initial item values. + /// </summary> + /// <param name="item">The item.</param> + /// <param name="args">The args.</param> + protected override void SetInitialItemValues(TItemType item, ItemResolveArgs args) + { + base.SetInitialItemValues(item, args); + + item.IsRoot = args.Parent == null; + item.IsPhysicalRoot = args.IsPhysicalRoot; + } + } +} |
