diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs index 05067dba9..649affe1b 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs @@ -51,7 +51,7 @@ namespace Orchard.CodeGeneration.Commands { public bool CreateDataMigration(string featureName) { Context.Output.WriteLine(T("Creating Data Migration for {0}", featureName)); - ExtensionDescriptor extensionDescriptor = _extensionManager.AvailableExtensions().FirstOrDefault(extension => extension.ExtensionType == DefaultExtensionTypes.Module && + ExtensionDescriptor extensionDescriptor = _extensionManager.AvailableExtensions().FirstOrDefault(extension => DefaultExtensionTypes.IsModule(extension.ExtensionType) && extension.Features.Any(feature => String.Equals(feature.Id, featureName, StringComparison.OrdinalIgnoreCase))); if (extensionDescriptor == null) { @@ -152,7 +152,7 @@ namespace Orchard.CodeGeneration.Commands { public void CreateController(string moduleName, string controllerName) { Context.Output.WriteLine(T("Creating Controller {0} in Module {1}", controllerName, moduleName)); - ExtensionDescriptor extensionDescriptor = _extensionManager.AvailableExtensions().FirstOrDefault(extension => extension.ExtensionType == DefaultExtensionTypes.Module && + ExtensionDescriptor extensionDescriptor = _extensionManager.AvailableExtensions().FirstOrDefault(extension => DefaultExtensionTypes.IsModule(extension.ExtensionType) && string.Equals(moduleName, extension.Name, StringComparison.OrdinalIgnoreCase)); if (extensionDescriptor == null) { diff --git a/src/Orchard.Web/Modules/Orchard.Modules/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Modules/Controllers/AdminController.cs index 26f0a4350..812c5cecf 100644 --- a/src/Orchard.Web/Modules/Orchard.Modules/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Modules/Controllers/AdminController.cs @@ -47,7 +47,7 @@ namespace Orchard.Modules.Controllers { if (!Services.Authorizer.Authorize(Permissions.ManageModules, T("Not allowed to manage modules"))) return new HttpUnauthorizedResult(); - var modules = _extensionManager.AvailableExtensions().Where(x => x.ExtensionType == DefaultExtensionTypes.Module); + var modules = _extensionManager.AvailableExtensions().Where(x => DefaultExtensionTypes.IsModule(x.ExtensionType)); return View(new ModulesIndexViewModel { Modules = modules, @@ -61,7 +61,7 @@ namespace Orchard.Modules.Controllers { var featuresThatNeedUpdate = _dataMigrationManager.GetFeaturesThatNeedUpdate(); var features = _featureManager.GetAvailableFeatures() - .Where(f => !f.Extension.ExtensionType.Equals(DefaultExtensionTypes.Theme, StringComparison.OrdinalIgnoreCase)) + .Where(f => !DefaultExtensionTypes.IsTheme(f.Extension.ExtensionType)) .Select(f=>new ModuleFeature{Descriptor=f, IsEnabled=_shellDescriptor.Features.Any(sf=>sf.Name==f.Id), NeedsUpdate=featuresThatNeedUpdate.Contains(f.Id)}) diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs index 40beb141b..a43bcbd5c 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs @@ -46,8 +46,7 @@ namespace Orchard.Packaging.Services { EmbedVirtualFile(context, projectFile, MediaTypeNames.Text.Xml); EmbedProjectFiles(context, "Compile", "Content", "None", "EmbeddedResource"); EmbedReferenceFiles(context); - } - else if (extensionDescriptor.ExtensionType == DefaultExtensionTypes.Theme) { + } else if (DefaultExtensionTypes.IsTheme(extensionDescriptor.ExtensionType)) { // this is a simple theme with no csproj EmbedThemeFiles(context); } @@ -141,7 +140,7 @@ namespace Orchard.Packaging.Services { private static void EstablishPaths(CreateContext context, IWebSiteFolder webSiteFolder, string locationPath, string moduleName, string moduleType) { context.SourceFolder = webSiteFolder; - if (moduleType == DefaultExtensionTypes.Theme) { + if (DefaultExtensionTypes.IsTheme(moduleType)) { context.SourcePath = "~/Themes/" + moduleName + "/"; context.TargetPath = "\\Content\\Themes\\" + moduleName + "\\"; } diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs index fb123917a..8cfa24d2f 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Themes/Controllers/AdminController.cs @@ -59,7 +59,7 @@ namespace Orchard.Themes.Controllers { var featuresThatNeedUpdate = _dataMigrationManager.GetFeaturesThatNeedUpdate(); var themes = _extensionManager.AvailableExtensions() - .Where(d => d.ExtensionType == DefaultExtensionTypes.Theme) + .Where(d => DefaultExtensionTypes.IsTheme(d.ExtensionType)) .Select(d => new ThemeEntry { Descriptor = d, NeedsUpdate = featuresThatNeedUpdate.Contains(d.Id), diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Preview/PreviewThemeFilter.cs b/src/Orchard.Web/Modules/Orchard.Themes/Preview/PreviewThemeFilter.cs index ac398d620..401c08402 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Preview/PreviewThemeFilter.cs +++ b/src/Orchard.Web/Modules/Orchard.Themes/Preview/PreviewThemeFilter.cs @@ -30,7 +30,7 @@ namespace Orchard.Themes.Preview { var installedThemes = _featureManager.GetEnabledFeatures() .Select(x => x.Extension) - .Where(x => x.ExtensionType == DefaultExtensionTypes.Theme) + .Where(x => DefaultExtensionTypes.IsTheme(x.ExtensionType)) .Distinct(); var themeListItems = installedThemes diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Services/ThemeService.cs b/src/Orchard.Web/Modules/Orchard.Themes/Services/ThemeService.cs index 5e5ed5756..abaec56c5 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Services/ThemeService.cs +++ b/src/Orchard.Web/Modules/Orchard.Themes/Services/ThemeService.cs @@ -110,7 +110,7 @@ namespace Orchard.Themes.Services { var themes = new List(); foreach (var descriptor in extensions) { - if (!string.Equals(descriptor.ExtensionType, DefaultExtensionTypes.Theme, StringComparison.OrdinalIgnoreCase)) { + if (!DefaultExtensionTypes.IsTheme(descriptor.ExtensionType)) { continue; } diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Services/WidgetsService.cs b/src/Orchard.Web/Modules/Orchard.Widgets/Services/WidgetsService.cs index d17aeb288..b3caf1e3b 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Services/WidgetsService.cs +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Services/WidgetsService.cs @@ -43,7 +43,7 @@ namespace Orchard.Widgets.Services { public IEnumerable GetZones() { return _featureManager.GetEnabledFeatures() .Select(x => x.Extension) - .Where(x => x.ExtensionType == DefaultExtensionTypes.Theme) + .Where(x => DefaultExtensionTypes.IsTheme(x.ExtensionType)) .SelectMany(x => x.Zones.Split(',')) .Distinct() .Select(x => x.Trim()) diff --git a/src/Orchard/DisplayManagement/Descriptors/DefaultShapeTableManager.cs b/src/Orchard/DisplayManagement/Descriptors/DefaultShapeTableManager.cs index 8d63b5174..d88d4dc31 100644 --- a/src/Orchard/DisplayManagement/Descriptors/DefaultShapeTableManager.cs +++ b/src/Orchard/DisplayManagement/Descriptors/DefaultShapeTableManager.cs @@ -66,11 +66,11 @@ namespace Orchard.DisplayManagement.Descriptors { } var extensionType = alteration.Feature.Descriptor.Extension.ExtensionType; - if (extensionType == DefaultExtensionTypes.Module) { + if (DefaultExtensionTypes.IsModule(extensionType)) { return true; } - if (extensionType == DefaultExtensionTypes.Theme) { + if (DefaultExtensionTypes.IsTheme(extensionType)) { // alterations from themes must be from the given theme or a base theme var featureName = alteration.Feature.Descriptor.Id; return featureName == themeName || IsBaseTheme(featureName, themeName); diff --git a/src/Orchard/DisplayManagement/Descriptors/ShapePlacementStrategy/ShapePlacementParsingStrategy.cs b/src/Orchard/DisplayManagement/Descriptors/ShapePlacementStrategy/ShapePlacementParsingStrategy.cs index be5cabab6..bf7c61f68 100644 --- a/src/Orchard/DisplayManagement/Descriptors/ShapePlacementStrategy/ShapePlacementParsingStrategy.cs +++ b/src/Orchard/DisplayManagement/Descriptors/ShapePlacementStrategy/ShapePlacementParsingStrategy.cs @@ -102,7 +102,7 @@ namespace Orchard.DisplayManagement.Descriptors.ShapePlacementStrategy { } private bool FeatureIsTheme(FeatureDescriptor fd) { - return fd.Extension.ExtensionType == DefaultExtensionTypes.Theme; + return DefaultExtensionTypes.IsTheme(fd.Extension.ExtensionType); } private bool FeatureIsEnabled(FeatureDescriptor fd) { diff --git a/src/Orchard/DisplayManagement/Descriptors/ShapeTemplateStrategy/ShapeTemplateBindingStrategy.cs b/src/Orchard/DisplayManagement/Descriptors/ShapeTemplateStrategy/ShapeTemplateBindingStrategy.cs index 7c53882f6..921ffc803 100644 --- a/src/Orchard/DisplayManagement/Descriptors/ShapeTemplateStrategy/ShapeTemplateBindingStrategy.cs +++ b/src/Orchard/DisplayManagement/Descriptors/ShapeTemplateStrategy/ShapeTemplateBindingStrategy.cs @@ -87,7 +87,7 @@ namespace Orchard.DisplayManagement.Descriptors.ShapeTemplateStrategy { } private bool FeatureIsEnabled(FeatureDescriptor fd) { - return (fd.Extension.ExtensionType == DefaultExtensionTypes.Theme && (fd.Id == "TheAdmin" || fd.Id == "SafeMode")) || + return (DefaultExtensionTypes.IsTheme(fd.Extension.ExtensionType) && (fd.Id == "TheAdmin" || fd.Id == "SafeMode")) || _shellDescriptor.Features.Any(sf => sf.Name == fd.Id); } diff --git a/src/Orchard/Environment/Extensions/ExtensionLoaderCoordinator.cs b/src/Orchard/Environment/Extensions/ExtensionLoaderCoordinator.cs index 1f52e907a..391985c5f 100644 --- a/src/Orchard/Environment/Extensions/ExtensionLoaderCoordinator.cs +++ b/src/Orchard/Environment/Extensions/ExtensionLoaderCoordinator.cs @@ -156,7 +156,7 @@ namespace Orchard.Environment.Extensions { private ExtensionLoadingContext CreateLoadingContext() { var availableExtensions = _extensionManager .AvailableExtensions() - .Where(d => d.ExtensionType == DefaultExtensionTypes.Module || d.ExtensionType == DefaultExtensionTypes.Theme) + .Where(d => DefaultExtensionTypes.IsModule(d.ExtensionType) || DefaultExtensionTypes.IsTheme(d.ExtensionType)) .OrderBy(d => d.Id) .ToList(); @@ -293,7 +293,7 @@ namespace Orchard.Environment.Extensions { monitor(_virtualPathMonitor.WhenPathChanges("~/Themes")); // Give loaders a chance to monitor any additional changes - var extensions = _extensionManager.AvailableExtensions().Where(d => d.ExtensionType == DefaultExtensionTypes.Module || d.ExtensionType == DefaultExtensionTypes.Theme).ToList(); + var extensions = _extensionManager.AvailableExtensions().Where(d => DefaultExtensionTypes.IsModule(d.ExtensionType) || DefaultExtensionTypes.IsTheme(d.ExtensionType)).ToList(); foreach (var extension in extensions) { foreach (var loader in _loaders) { loader.Monitor(extension, monitor); diff --git a/src/Orchard/Environment/Extensions/ExtensionManager.cs b/src/Orchard/Environment/Extensions/ExtensionManager.cs index e23bbd74c..0aeea280c 100644 --- a/src/Orchard/Environment/Extensions/ExtensionManager.cs +++ b/src/Orchard/Environment/Extensions/ExtensionManager.cs @@ -49,13 +49,13 @@ namespace Orchard.Environment.Extensions { /// /// internal static bool HasDependency(FeatureDescriptor item, FeatureDescriptor subject) { - if (item.Extension.ExtensionType == DefaultExtensionTypes.Theme) { - if (subject.Extension.ExtensionType == DefaultExtensionTypes.Module) { + if (DefaultExtensionTypes.IsTheme(item.Extension.ExtensionType)) { + if (DefaultExtensionTypes.IsModule(subject.Extension.ExtensionType)) { // Themes implicitly depend on modules to ensure build and override ordering return true; } - if (subject.Extension.ExtensionType == DefaultExtensionTypes.Theme) { + if (DefaultExtensionTypes.IsTheme(subject.Extension.ExtensionType)) { // Theme depends on another if it is its base theme return item.Extension.BaseTheme == subject.Id; } diff --git a/src/Orchard/Environment/Extensions/Models/DefaultExtensionTypes.cs b/src/Orchard/Environment/Extensions/Models/DefaultExtensionTypes.cs index b65a9d551..607fe8fcf 100644 --- a/src/Orchard/Environment/Extensions/Models/DefaultExtensionTypes.cs +++ b/src/Orchard/Environment/Extensions/Models/DefaultExtensionTypes.cs @@ -1,7 +1,17 @@ -namespace Orchard.Environment.Extensions.Models { +using System; + +namespace Orchard.Environment.Extensions.Models { public static class DefaultExtensionTypes { public const string Module = "Module"; public const string Theme = "Theme"; public const string Core = "Core"; + + public static bool IsModule(string extensionType) { + return string.Equals(extensionType, Module, StringComparison.OrdinalIgnoreCase); + } + + public static bool IsTheme(string extensionType) { + return string.Equals(extensionType, Theme, StringComparison.OrdinalIgnoreCase); + } } } \ No newline at end of file diff --git a/src/Orchard/Localization/Services/DefaultLocalizedStringManager.cs b/src/Orchard/Localization/Services/DefaultLocalizedStringManager.cs index b938aeabc..ed5297a20 100644 --- a/src/Orchard/Localization/Services/DefaultLocalizedStringManager.cs +++ b/src/Orchard/Localization/Services/DefaultLocalizedStringManager.cs @@ -113,7 +113,7 @@ namespace Orchard.Localization.Services { } foreach (var module in _extensionManager.AvailableExtensions()) { - if (String.Equals(module.ExtensionType, DefaultExtensionTypes.Module)) { + if (DefaultExtensionTypes.IsModule(module.ExtensionType)) { string modulePath = string.Format(ModulesLocalizationFilePathFormat, module.Id, culture); text = _webSiteFolder.ReadFile(modulePath); if (text != null) { @@ -124,7 +124,7 @@ namespace Orchard.Localization.Services { } foreach (var theme in _extensionManager.AvailableExtensions()) { - if (String.Equals(theme.ExtensionType, DefaultExtensionTypes.Theme)) { + if (DefaultExtensionTypes.IsTheme(theme.ExtensionType)) { string themePath = string.Format(ThemesLocalizationFilePathFormat, theme.Id, culture); text = _webSiteFolder.ReadFile(themePath); if (text != null) {