From b50f78e5da6f3fdfc59e577ca61b88771da7d211 Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Thu, 12 Jul 2012 02:55:27 -0400 Subject: Initial check-in --- .../Resolvers/FolderResolver.cs | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 MediaBrowser.Controller/Resolvers/FolderResolver.cs (limited to 'MediaBrowser.Controller/Resolvers/FolderResolver.cs') diff --git a/MediaBrowser.Controller/Resolvers/FolderResolver.cs b/MediaBrowser.Controller/Resolvers/FolderResolver.cs new file mode 100644 index 000000000..5c57c6bb3 --- /dev/null +++ b/MediaBrowser.Controller/Resolvers/FolderResolver.cs @@ -0,0 +1,45 @@ +using System.Collections.Generic; +using System.IO; +using System.Linq; +using MediaBrowser.Controller.Events; +using MediaBrowser.Model.Entities; +using MediaBrowser.Controller.Xml; + +namespace MediaBrowser.Controller.Resolvers +{ + public class FolderResolver : BaseFolderResolver + { + protected override Folder Resolve(ItemResolveEventArgs args) + { + if (args.IsFolder) + { + return new Folder(); + } + + return null; + } + } + + public abstract class BaseFolderResolver : BaseItemResolver + where T : Folder, new () + { + protected override void SetItemValues(T item, ItemResolveEventArgs args) + { + base.SetItemValues(item, args); + + item.IsRoot = args.Parent == null; + + PopulateFolderMetadata(item, args); + } + + private void PopulateFolderMetadata(Folder folder, ItemResolveEventArgs args) + { + var metadataFile = args.GetFileByName("folder.xml"); + + if (metadataFile.HasValue) + { + new FolderXmlParser().Fetch(folder, metadataFile.Value.Key); + } + } + } +} -- cgit v1.2.3