From a508a997d9e7605c40f4442e367b9dd74e54f5e3 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Sat, 18 Aug 2012 15:38:27 -0400 Subject: Added a VirtualFolder entity, a resolver, and a CollectionType property. --- .../Resolvers/VirtualFolderResolver.cs | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs (limited to 'MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs') diff --git a/MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs b/MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs new file mode 100644 index 000000000..51478fd02 --- /dev/null +++ b/MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs @@ -0,0 +1,41 @@ +using System.ComponentModel.Composition; +using System.IO; +using MediaBrowser.Controller.Events; +using MediaBrowser.Model.Entities; + +namespace MediaBrowser.Controller.Resolvers +{ + [Export(typeof(IBaseItemResolver))] + public class VirtualFolderResolver : BaseFolderResolver + { + protected override VirtualFolder Resolve(ItemResolveEventArgs args) + { + if (args.IsFolder && args.Parent != null && args.Parent.IsRoot) + { + return new VirtualFolder(); + } + + return null; + } + + protected override void SetItemValues(VirtualFolder item, ItemResolveEventArgs args) + { + // Set the name initially by stripping off the [CollectionType=...] + // The name can always be overridden later by folder.xml + string pathName = Path.GetFileNameWithoutExtension(args.Path); + + string srch = "[collectiontype="; + int index = pathName.IndexOf(srch, System.StringComparison.OrdinalIgnoreCase); + + if (index != -1) + { + item.Name = pathName.Substring(0, index).Trim(); + + item.CollectionType = pathName.Substring(index + srch.Length).TrimEnd(']'); + } + + base.SetItemValues(item, args); + } + + } +} -- cgit v1.2.3