From 85b1276d68e96c9622cc2103d5473470fa081556 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Sun, 7 Nov 2010 14:40:51 -0800 Subject: [PATCH] Getting closer to restoring existing functionality --HG-- branch : perf --- .../Controllers/AdminController.cs | 36 ++- .../Orchard.Themes/Orchard.Themes.csproj | 2 +- .../Orchard.Themes/Services/ThemeService.cs | 208 ++++++++++++++++++ .../ViewModels/ThemesIndexViewModel.cs | 17 +- .../Orchard.Themes/Views/Admin/Index.cshtml | 16 +- src/Orchard.Web/Themes/Primus/Theme.png | Bin 0 -> 50052 bytes src/Orchard.Web/Themes/Primus/Theme.txt | 6 + src/Orchard.Web/Themes/Secundus/Theme.png | Bin 0 -> 50052 bytes src/Orchard.Web/Themes/Secundus/Theme.txt | 6 + src/Orchard.Web/Themes/Themes.csproj | 5 +- src/Orchard.Web/Web.config | 2 +- .../Environment/Features/FeatureManager.cs | 43 +++- src/Orchard/Orchard.Framework.csproj | 1 + src/Orchard/Themes/IThemeManager.cs | 33 --- src/Orchard/Themes/ThemeManager.cs | 36 +++ 15 files changed, 344 insertions(+), 67 deletions(-) create mode 100644 src/Orchard.Web/Modules/Orchard.Themes/Services/ThemeService.cs create mode 100644 src/Orchard.Web/Themes/Primus/Theme.png create mode 100644 src/Orchard.Web/Themes/Primus/Theme.txt create mode 100644 src/Orchard.Web/Themes/Secundus/Theme.png create mode 100644 src/Orchard.Web/Themes/Secundus/Theme.txt create mode 100644 src/Orchard/Themes/ThemeManager.cs diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs index d3597c7f5..6bf7988ee 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs @@ -5,6 +5,7 @@ using System.Web; using System.Web.Mvc; using Orchard.Data.Migration; using Orchard.DisplayManagement; +using Orchard.Environment.Descriptor.Models; using Orchard.Environment.Extensions; using Orchard.Environment.Features; using Orchard.Localization; @@ -18,11 +19,11 @@ using Orchard.UI.Notify; namespace Orchard.Themes.Controllers { [ValidateInput(false)] public class AdminController : Controller { - private readonly IThemeManager _themeManager; - private readonly IFeatureManager _featureManager; private readonly ISiteThemeService _siteThemeService; private readonly IPreviewTheme _previewTheme; private readonly IExtensionManager _extensionManager; + private readonly ShellDescriptor _shellDescriptor; + private readonly IThemeService _themeService; private readonly IDataMigrationManager _dataMigrationManager; private readonly IReportsCoordinator _reportsCoordinator; @@ -36,27 +37,38 @@ namespace Orchard.Themes.Controllers { IPreviewTheme previewTheme, IAuthorizer authorizer, INotifier notifier, - IExtensionManager extensionManager) { + IExtensionManager extensionManager, + ShellDescriptor shellDescriptor, + IThemeService themeService) { Services = services; _dataMigrationManager = dataMigraitonManager; _reportsCoordinator = reportsCoordinator; - _themeManager = themeManager; - _featureManager = featureManager; _siteThemeService = siteThemeService; _previewTheme = previewTheme; _extensionManager = extensionManager; + _shellDescriptor = shellDescriptor; + _themeService = themeService; T = NullLocalizer.Instance; } - public IOrchardServices Services{ get; set; } + public IOrchardServices Services { get; set; } public Localizer T { get; set; } public ActionResult Index() { try { - var themes = _extensionManager.AvailableExtensions().Where(d => d.ExtensionType == "Theme"); var currentTheme = _siteThemeService.GetSiteTheme(); var featuresThatNeedUpdate = _dataMigrationManager.GetFeaturesThatNeedUpdate(); - var model = new ThemesIndexViewModel { CurrentTheme = currentTheme, Themes = themes, FeaturesThatNeedUpdate = featuresThatNeedUpdate }; + + var themes = _extensionManager.AvailableExtensions() + .Where(d => d.ExtensionType == "Theme") + .Select(d => new ThemeEntry { + Descriptor = d, + NeedsUpdate = featuresThatNeedUpdate.Contains(d.Name), + Enabled = _shellDescriptor.Features.Any(sf => sf.Name == d.Name) + }) + .ToArray(); + + var model = new ThemesIndexViewModel { CurrentTheme = currentTheme, Themes = themes }; return View(model); } catch (Exception exception) { @@ -112,8 +124,7 @@ namespace Orchard.Themes.Controllers { if (!Services.Authorizer.Authorize(Permissions.ApplyTheme, T("Couldn't enable the theme"))) return new HttpUnauthorizedResult(); - // feature id always == extension id, in this case - _featureManager.EnableFeature(themeName); + _themeService.EnableThemeFeatures(themeName); } catch (Exception exception) { Services.Notifier.Error(T("Enabling theme failed: " + exception.Message)); @@ -127,8 +138,7 @@ namespace Orchard.Themes.Controllers { if (!Services.Authorizer.Authorize(Permissions.ApplyTheme, T("Couldn't disable the current theme"))) return new HttpUnauthorizedResult(); - // feature id always == extension id, in this case - _featureManager.DisableFeature(themeName); + _themeService.DisableThemeFeatures(themeName); } catch (Exception exception) { Services.Notifier.Error(T("Disabling theme failed: " + exception.Message)); @@ -141,6 +151,8 @@ namespace Orchard.Themes.Controllers { try { if (!Services.Authorizer.Authorize(Permissions.ApplyTheme, T("Couldn't set the current theme"))) return new HttpUnauthorizedResult(); + + _themeService.EnableThemeFeatures(themeName); _siteThemeService.SetSiteTheme(themeName); } catch (Exception exception) { diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj index 72e4baa20..6f349ce98 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj +++ b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj @@ -86,7 +86,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Services/ThemeService.cs b/src/Orchard.Web/Modules/Orchard.Themes/Services/ThemeService.cs new file mode 100644 index 000000000..1441c7058 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Themes/Services/ThemeService.cs @@ -0,0 +1,208 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web.Routing; +using JetBrains.Annotations; +using Orchard.Environment.Descriptor; +using Orchard.Environment.Descriptor.Models; +using Orchard.Environment.Extensions; +using Orchard.Environment.Extensions.Models; +using Orchard.Environment.Features; +using Orchard.Localization; +using Orchard.Logging; +using Orchard.ContentManagement; +using Orchard.Themes.Models; + +namespace Orchard.Themes.Services { + public interface IThemeService : IDependency { + void DisableThemeFeatures(string themeName); + void EnableThemeFeatures(string themeName); + } + + [UsedImplicitly] + public class ThemeService : IThemeService { + private readonly IExtensionManager _extensionManager; + private readonly IFeatureManager _featureManager; + private readonly IEnumerable _themeSelectors; + + private readonly IWorkContextAccessor _workContextAccessor; + private readonly ShellDescriptor _shellDescriptor; + private readonly IOrchardServices _orchardServices; + private readonly IShellDescriptorManager _shellDescriptorManager; + + public ThemeService( + IShellDescriptorManager shellDescriptorManager, + IExtensionManager extensionManager, + IFeatureManager featureManager, + IEnumerable themeSelectors, + + IWorkContextAccessor workContextAccessor, + ShellDescriptor shellDescriptor, + IOrchardServices orchardServices) { + _shellDescriptorManager = shellDescriptorManager; + _extensionManager = extensionManager; + _featureManager = featureManager; + _themeSelectors = themeSelectors; + + _workContextAccessor = workContextAccessor; + _shellDescriptor = shellDescriptor; + _orchardServices = orchardServices; + Logger = NullLogger.Instance; + T = NullLocalizer.Instance; + } + + public Localizer T { get; set; } + public ILogger Logger { get; set; } + + + + private bool AllBaseThemesAreInstalled(string baseThemeName) { + var themesSeen = new List(); + while (!string.IsNullOrWhiteSpace(baseThemeName)) { + //todo: (heskew) need a better way to protect from recursive references + if (themesSeen.Contains(baseThemeName)) + throw new InvalidOperationException(T("The theme \"{0}\" was already seen - looks like we're going around in circles.", baseThemeName).Text); + themesSeen.Add(baseThemeName); + + var baseTheme = _extensionManager.GetExtension(baseThemeName); + if (baseTheme == null) + return false; + baseThemeName = baseTheme.BaseTheme; + } + + return true; + } + + public void DisableThemeFeatures(string themeName) { + var themes = new Queue(); + while (themeName != null) { + if (themes.Contains(themeName)) + throw new InvalidOperationException(T("The theme \"{0}\" is already in the stack of themes that need features disabled.", themeName).Text); + var theme = _extensionManager.GetExtension(themeName); + if (theme == null) + break; + themes.Enqueue(themeName); + + themeName = !string.IsNullOrWhiteSpace(theme.BaseTheme) + ? theme.BaseTheme + : null; + } + + while (themes.Count > 0) + _featureManager.DisableFeatures(new[] { themes.Dequeue() }); + } + + public void EnableThemeFeatures(string themeName) { + var themes = new Stack(); + while(themeName != null) { + if (themes.Contains(themeName)) + throw new InvalidOperationException(T("The theme \"{0}\" is already in the stack of themes that need features enabled.", themeName).Text); + themes.Push(themeName); + + var theme = _extensionManager.GetExtension(themeName); + themeName = !string.IsNullOrWhiteSpace(theme.BaseTheme) + ? theme.BaseTheme + : null; + } + + while (themes.Count > 0) + _featureManager.EnableFeatures(new[] {themes.Pop()}); + } + + private bool DoEnableTheme(string themeName) { + if (string.IsNullOrWhiteSpace(themeName)) + return false; + + //todo: (heskew) need messages given in addition to all of these early returns so something meaningful can be presented to the user + var themeToEnable = _extensionManager.GetExtension(themeName); + if (themeToEnable == null) + return false; + + // ensure all base themes down the line are present and accounted for + //todo: (heskew) dito on the need of a meaningful message + if (!AllBaseThemesAreInstalled(themeToEnable.BaseTheme)) + return false; + + // enable all theme features + EnableThemeFeatures(themeToEnable.Name); + return true; + } + + public ExtensionDescriptor GetRequestTheme(RequestContext requestContext) { + var requestTheme = _themeSelectors + .Select(x => x.GetTheme(requestContext)) + .Where(x => x != null) + .OrderByDescending(x => x.Priority); + + if (requestTheme.Count() < 1) + return null; + + foreach (var theme in requestTheme) { + var t = _extensionManager.GetExtension(theme.ThemeName); + if (t != null) + return t; + } + + return _extensionManager.GetExtension("SafeMode"); + } + + /// + /// Loads only installed themes + /// + public IEnumerable GetInstalledThemes() { + return GetThemes(_extensionManager.AvailableExtensions()); + } + + private IEnumerable GetThemes(IEnumerable extensions) { + var themes = new List(); + foreach (var descriptor in extensions) { + + if (!string.Equals(descriptor.ExtensionType, "Theme", StringComparison.OrdinalIgnoreCase)) { + continue; + } + + ExtensionDescriptor theme = descriptor; + + if (!theme.Tags.Contains("hidden")) { + themes.Add(theme); + } + } + return themes; + } + + private static string TryLocalize(string key, string original, Localizer localizer) { + var localized = localizer(key).Text; + + if ( key == localized ) { + // no specific localization available + return original; + } + + return localized; + } + + private bool IsThemeEnabled(ExtensionDescriptor descriptor) { + return (descriptor.Name == "TheAdmin" || descriptor.Name == "SafeMode") || + _shellDescriptorManager.GetShellDescriptor().Features.Any(sf => sf.Name == descriptor.Name); + } + + //private ITheme CreateTheme(ExtensionDescriptor descriptor) { + + // var localizer = LocalizationUtilities.Resolve(_workContextAccessor.GetContext(), String.Concat(descriptor.Location, "/", descriptor.Name, "/Theme.txt")); + + // return new Theme { + // //Author = TryLocalize("Author", descriptor.Author, localizer) ?? "", + // //Description = TryLocalize("Description", descriptor.Description, localizer) ?? "", + // DisplayName = TryLocalize("Name", descriptor.DisplayName, localizer) ?? "", + // //HomePage = TryLocalize("Website", descriptor.WebSite, localizer) ?? "", + // ThemeName = descriptor.Name, + // //Version = descriptor.Version ?? "", + // Tags = TryLocalize("Tags", descriptor.Tags, localizer) ?? "", + // Zones = descriptor.Zones ?? "", + // BaseTheme = descriptor.BaseTheme ?? "", + // Enabled = IsThemeEnabled(descriptor) + // }; + //} + } + +} diff --git a/src/Orchard.Web/Modules/Orchard.Themes/ViewModels/ThemesIndexViewModel.cs b/src/Orchard.Web/Modules/Orchard.Themes/ViewModels/ThemesIndexViewModel.cs index 6c872c896..10aba3a0f 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/ViewModels/ThemesIndexViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Themes/ViewModels/ThemesIndexViewModel.cs @@ -2,9 +2,20 @@ using Orchard.Environment.Extensions.Models; namespace Orchard.Themes.ViewModels { - public class ThemesIndexViewModel { + public class ThemesIndexViewModel { public ExtensionDescriptor CurrentTheme { get; set; } - public IEnumerable Themes { get; set; } - public IEnumerable FeaturesThatNeedUpdate { get; set; } + public IEnumerable Themes { get; set; } + } + + public class ThemeEntry { + public ExtensionDescriptor Descriptor { get; set; } + public bool Enabled { get; set; } + public bool NeedsUpdate { get; set; } + + public string ThemeName { get { return Descriptor.Name; } } + public string DisplayName { get { return Descriptor.DisplayName; } } + public string ThemePath(string path) { + return Descriptor.Location + "/" + Descriptor.Name + path; + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Views/Admin/Index.cshtml b/src/Orchard.Web/Modules/Orchard.Themes/Views/Admin/Index.cshtml index ce05c4e67..241155080 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Views/Admin/Index.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Themes/Views/Admin/Index.cshtml @@ -15,7 +15,7 @@

@T("Version:") @Model.CurrentTheme.Version
@Model.CurrentTheme.Description
- @Model.CurrentTheme.HomePage + @Model.CurrentTheme.WebSite

@Html.ActionLink(T("Install a new Theme").ToString(), "Install", null, new { @class = "button primaryAction" }) @@ -24,11 +24,11 @@

@T("Available Themes")

    @foreach (var theme in Model.Themes) { - if (Model.CurrentTheme == null || theme.ThemeName != Model.CurrentTheme.ThemeName) { + if (Model.CurrentTheme == null || theme.ThemeName != Model.CurrentTheme.Name) {
  • @theme.DisplayName

    - @Html.Image(Href(Html.ThemePath(theme, "/Theme.png")), Html.Encode(theme.DisplayName), null) + @Html.Image(Href(theme.ThemePath("/Theme.png")), Html.Encode(theme.DisplayName), null) @using (Html.BeginFormAntiForgeryPost(Url.Action(theme.Enabled ? "Disable" : "Enable"), FormMethod.Post, new { @class = "inline" })) { @Html.Hidden("themeName", theme.ThemeName) @@ -41,13 +41,13 @@ @Html.Hidden("themeName", theme.ThemeName) } -
    @T("By") @theme.Author
    +
    @T("By") @theme.Descriptor.Author

    - @T("Version:") @theme.Version
    - @theme.Description
    - @theme.HomePage + @T("Version:") @theme.Descriptor.Version
    + @theme.Descriptor.Description
    + @theme.Descriptor.WebSite

    - @if(Model.FeaturesThatNeedUpdate.Contains(theme.ThemeName)){ + @if(theme.NeedsUpdate){ using (Html.BeginFormAntiForgeryPost(Url.Action("Update"), FormMethod.Post, new { @class = "inline link" })) { @Html.Hidden("themeName", theme.ThemeName)
    diff --git a/src/Orchard.Web/Themes/Primus/Theme.png b/src/Orchard.Web/Themes/Primus/Theme.png new file mode 100644 index 0000000000000000000000000000000000000000..e1371de5679af588365671735cbb8950bf347a95 GIT binary patch literal 50052 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%0DSU2_cmRWArSkbyU9&DlymlccJAk+*!pvR8&@ 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

    JJs|o857a@=i<16;n>uT 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 BNnZc} literal 0 HcmV?d00001 diff --git a/src/Orchard.Web/Themes/Primus/Theme.txt b/src/Orchard.Web/Themes/Primus/Theme.txt new file mode 100644 index 000000000..ec969317d --- /dev/null +++ b/src/Orchard.Web/Themes/Primus/Theme.txt @@ -0,0 +1,6 @@ +Name: Primus +Author: Lou +Description: desc +Version: 0.1 +Website: http://whereslou.com +Zones: Main, Sidebar diff --git a/src/Orchard.Web/Themes/Secundus/Theme.png b/src/Orchard.Web/Themes/Secundus/Theme.png new file mode 100644 index 0000000000000000000000000000000000000000..e1371de5679af588365671735cbb8950bf347a95 GIT binary patch literal 50052 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%0DSU2_cmRWArSkbyU9&DlymlccJAk+*!pvR8&@ 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

    JJs|o857a@=i<16;n>uT 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 BNnZc} literal 0 HcmV?d00001 diff --git a/src/Orchard.Web/Themes/Secundus/Theme.txt b/src/Orchard.Web/Themes/Secundus/Theme.txt new file mode 100644 index 000000000..5e4860dda --- /dev/null +++ b/src/Orchard.Web/Themes/Secundus/Theme.txt @@ -0,0 +1,6 @@ +Name: Secundus +Author: Lou +Description: desc +Version: 0.1 +Website: http://whereslou.com +Zones: Main, Sidebar diff --git a/src/Orchard.Web/Themes/Themes.csproj b/src/Orchard.Web/Themes/Themes.csproj index 7b6afc1bf..6e4a12edf 100644 --- a/src/Orchard.Web/Themes/Themes.csproj +++ b/src/Orchard.Web/Themes/Themes.csproj @@ -49,6 +49,10 @@ + + + + @@ -93,7 +97,6 @@ - - + diff --git a/src/Orchard/Environment/Features/FeatureManager.cs b/src/Orchard/Environment/Features/FeatureManager.cs index d574b2481..b4f347f71 100644 --- a/src/Orchard/Environment/Features/FeatureManager.cs +++ b/src/Orchard/Environment/Features/FeatureManager.cs @@ -1,5 +1,8 @@ using System; using System.Collections.Generic; +using System.Linq; +using Orchard.Environment.Descriptor; +using Orchard.Environment.Descriptor.Models; using Orchard.Environment.Extensions; using Orchard.Environment.Extensions.Models; @@ -8,16 +11,22 @@ namespace Orchard.Environment.Features { IEnumerable GetAvailableFeatures(); IEnumerable GetEnabledFeatures(); - void EnableFeature(string name); - void DisableFeature(string name); + void EnableFeatures(IEnumerable featureNames); + void DisableFeatures(IEnumerable featureNames); } - public class FeatureManager : IFeatureManager { private readonly IExtensionManager _extensionManager; + private readonly ShellDescriptor _shellDescriptor; + private readonly IShellDescriptorManager _shellDescriptorManager; - public FeatureManager(IExtensionManager extensionManager) { + public FeatureManager( + IExtensionManager extensionManager, + ShellDescriptor shellDescriptor, + IShellDescriptorManager shellDescriptorManager) { _extensionManager = extensionManager; + _shellDescriptor = shellDescriptor; + _shellDescriptorManager = shellDescriptorManager; } public IEnumerable GetAvailableFeatures() { @@ -28,12 +37,30 @@ namespace Orchard.Environment.Features { throw new NotImplementedException(); } - public void EnableFeature(string name) { - throw new NotImplementedException(); + public void EnableFeatures(IEnumerable featureNames) { + var currentShellDescriptor = _shellDescriptorManager.GetShellDescriptor(); + + var updatedFeatures = currentShellDescriptor.Features + .Union(featureNames + .Where(name => !currentShellDescriptor.Features.Any(sf => sf.Name == name)) + .Select(name => new ShellFeature {Name = name})); + + _shellDescriptorManager.UpdateShellDescriptor( + currentShellDescriptor.SerialNumber, + updatedFeatures, + currentShellDescriptor.Parameters); } - public void DisableFeature(string name) { - throw new NotImplementedException(); + public void DisableFeatures(IEnumerable featureNames) { + var currentShellDescriptor = _shellDescriptorManager.GetShellDescriptor(); + + var updatedFeatures = currentShellDescriptor.Features + .Where(sf => !featureNames.Contains(sf.Name)); + + _shellDescriptorManager.UpdateShellDescriptor( + currentShellDescriptor.SerialNumber, + updatedFeatures, + currentShellDescriptor.Parameters); } diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 6db017c77..294fc8e21 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -186,6 +186,7 @@ + diff --git a/src/Orchard/Themes/IThemeManager.cs b/src/Orchard/Themes/IThemeManager.cs index 1fc41ed14..40f37ccf4 100644 --- a/src/Orchard/Themes/IThemeManager.cs +++ b/src/Orchard/Themes/IThemeManager.cs @@ -1,42 +1,9 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Web.Routing; -using Orchard.Environment.Extensions; using Orchard.Environment.Extensions.Models; namespace Orchard.Themes { public interface IThemeManager : IDependency { - [Obsolete] ExtensionDescriptor GetRequestTheme(RequestContext requestContext); } - - public class ThemeManager : IThemeManager { - private readonly IEnumerable _themeSelectors; - private readonly IExtensionManager _extensionManager; - - public ThemeManager(IEnumerable themeSelectors, - IExtensionManager extensionManager) { - _themeSelectors = themeSelectors; - _extensionManager = extensionManager; - } - - public ExtensionDescriptor GetRequestTheme(RequestContext requestContext) { - var requestTheme = _themeSelectors - .Select(x => x.GetTheme(requestContext)) - .Where(x => x != null) - .OrderByDescending(x => x.Priority); - - if (requestTheme.Count() < 1) - return null; - - foreach (var theme in requestTheme) { - var t = _extensionManager.GetExtension(theme.ThemeName); - if (t != null) - return t; - } - - return _extensionManager.GetExtension("SafeMode"); - } - } } diff --git a/src/Orchard/Themes/ThemeManager.cs b/src/Orchard/Themes/ThemeManager.cs new file mode 100644 index 000000000..21dd709a8 --- /dev/null +++ b/src/Orchard/Themes/ThemeManager.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using System.Linq; +using System.Web.Routing; +using Orchard.Environment.Extensions; +using Orchard.Environment.Extensions.Models; + +namespace Orchard.Themes { + public class ThemeManager : IThemeManager { + private readonly IEnumerable _themeSelectors; + private readonly IExtensionManager _extensionManager; + + public ThemeManager(IEnumerable themeSelectors, + IExtensionManager extensionManager) { + _themeSelectors = themeSelectors; + _extensionManager = extensionManager; + } + + public ExtensionDescriptor GetRequestTheme(RequestContext requestContext) { + var requestTheme = _themeSelectors + .Select(x => x.GetTheme(requestContext)) + .Where(x => x != null) + .OrderByDescending(x => x.Priority); + + if (requestTheme.Count() < 1) + return null; + + foreach (var theme in requestTheme) { + var t = _extensionManager.GetExtension(theme.ThemeName); + if (t != null) + return t; + } + + return _extensionManager.GetExtension("SafeMode"); + } + } +} \ No newline at end of file