| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | using MediaBrowser.Controller.Entities;using MediaBrowser.Controller.Library;using MediaBrowser.Controller.Resolvers;namespace MediaBrowser.Server.Implementations.Library.Resolvers{    /// <summary>    /// Class FolderResolver    /// </summary>    public class FolderResolver : FolderResolver<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 FolderResolver    /// </summary>    /// <typeparam name="TItemType">The type of the T item type.</typeparam>    public abstract class FolderResolver<TItemType> : ItemResolver<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;        }    }}
 |