From 5fc858ed128ba96c09502494cd422aee3d95194a Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Thu, 2 Sep 2010 22:51:29 -0700 Subject: [PATCH] Adjusting enough things to get through the setup module's initial action --HG-- branch : dev --- .../Modules/Orchard.Setup/SetupMode.cs | 3 +++ .../Environment/Extensions/ExtensionManager.cs | 10 ++++++++-- src/Orchard/Environment/OrchardStarter.cs | 4 +++- src/Orchard/Mvc/MvcModule.cs | 1 - src/Orchard/Mvc/OrchardControllerFactory.cs | 16 +--------------- src/Orchard/Mvc/ViewModels/BaseViewModel.cs | 4 ++++ src/Orchard/Orchard.Framework.csproj | 1 + 7 files changed, 20 insertions(+), 19 deletions(-) create mode 100644 src/Orchard/Mvc/ViewModels/BaseViewModel.cs diff --git a/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs b/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs index 8cfdd65c4..d34ace551 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/SetupMode.cs @@ -15,6 +15,7 @@ using Orchard.DisplayManagement; using Orchard.DisplayManagement.Descriptors; using Orchard.DisplayManagement.Implementation; using Orchard.DisplayManagement.Shapes; +using Orchard.Environment; using Orchard.Environment.Extensions; using Orchard.Localization; using Orchard.Mvc; @@ -53,6 +54,7 @@ namespace Orchard.Setup { builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); builder.RegisterType().As().InstancePerLifetimeScope(); + builder.RegisterType().As(); // setup mode specific implementations of needed service interfaces builder.RegisterType().As().InstancePerLifetimeScope(); @@ -66,6 +68,7 @@ namespace Orchard.Setup { builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); + builder.RegisterType().As(); builder.RegisterType().As(); } diff --git a/src/Orchard/Environment/Extensions/ExtensionManager.cs b/src/Orchard/Environment/Extensions/ExtensionManager.cs index d15f5158a..24e82b50d 100644 --- a/src/Orchard/Environment/Extensions/ExtensionManager.cs +++ b/src/Orchard/Environment/Extensions/ExtensionManager.cs @@ -33,7 +33,7 @@ namespace Orchard.Environment.Extensions { public IEnumerable AvailableExtensions() { return _folders.SelectMany(folder => folder.AvailableExtensions()); } - + public IEnumerable AvailableFeatures() { var featureDescriptors = AvailableExtensions().SelectMany(ext => ext.Features); var featureDescriptorsOrdered = featureDescriptors.OrderByDependencies(HasDependency); @@ -61,7 +61,13 @@ namespace Orchard.Environment.Extensions { foreach (var descriptor in AvailableExtensions()) { // Extensions that are Themes don't have buildable components. if (String.Equals(descriptor.ExtensionType, "Module", StringComparison.OrdinalIgnoreCase)) { - var entry = BuildEntry(descriptor); + ExtensionEntry entry = null; + try { + entry = BuildEntry(descriptor); + } + catch (HttpCompileException ex) { + Logger.Warning(ex, "Unable to load module {0}", descriptor.Name); + } if (entry != null) yield return entry; } diff --git a/src/Orchard/Environment/OrchardStarter.cs b/src/Orchard/Environment/OrchardStarter.cs index 5195c5072..7e22b098d 100644 --- a/src/Orchard/Environment/OrchardStarter.cs +++ b/src/Orchard/Environment/OrchardStarter.cs @@ -116,8 +116,10 @@ namespace Orchard.Environment { } } + ControllerBuilder.Current.SetControllerFactory(new OrchardControllerFactory()); + var hostContainer = new DefaultOrchardHostContainer(container); - MvcServiceLocator.SetCurrent(hostContainer); + //MvcServiceLocator.SetCurrent(hostContainer); OrchardHostContainerRegistry.RegisterHostContainer(hostContainer); return container; diff --git a/src/Orchard/Mvc/MvcModule.cs b/src/Orchard/Mvc/MvcModule.cs index 26b866b62..76d24a5a6 100644 --- a/src/Orchard/Mvc/MvcModule.cs +++ b/src/Orchard/Mvc/MvcModule.cs @@ -11,7 +11,6 @@ namespace Orchard.Mvc { public class MvcModule : Module { protected override void Load(ContainerBuilder moduleBuilder) { - moduleBuilder.RegisterType().As().InstancePerDependency(); moduleBuilder.RegisterType().As().InstancePerDependency(); moduleBuilder.RegisterType().InstancePerDependency(); diff --git a/src/Orchard/Mvc/OrchardControllerFactory.cs b/src/Orchard/Mvc/OrchardControllerFactory.cs index 61eca3d7a..2d113804f 100644 --- a/src/Orchard/Mvc/OrchardControllerFactory.cs +++ b/src/Orchard/Mvc/OrchardControllerFactory.cs @@ -20,10 +20,7 @@ namespace Orchard.Mvc { object controller; var service = new KeyedService(serviceKey, typeof(IController)); - // Locate the container this route is bound against - var workContextAccessor = GetWorkContextAccessor(routeData); - - var workContext = workContextAccessor != null ? workContextAccessor.GetContext(requestContext.HttpContext) : null; + var workContext = requestContext.GetWorkContext(); if (workContext != null && workContext.Resolve().TryResolve(service, out controller)) { @@ -55,16 +52,5 @@ namespace Orchard.Mvc { return GetAreaName(routeData.Route); } - - static IWorkContextAccessor GetWorkContextAccessor(RouteData routeData) { - object dataTokenValue; - if (routeData != null && - routeData.DataTokens != null && - routeData.DataTokens.TryGetValue("IWorkContextAccessor", out dataTokenValue) && - dataTokenValue is IWorkContextAccessor) { - return (IWorkContextAccessor)dataTokenValue; - } - return null; - } } } \ No newline at end of file diff --git a/src/Orchard/Mvc/ViewModels/BaseViewModel.cs b/src/Orchard/Mvc/ViewModels/BaseViewModel.cs new file mode 100644 index 000000000..847b1acef --- /dev/null +++ b/src/Orchard/Mvc/ViewModels/BaseViewModel.cs @@ -0,0 +1,4 @@ +namespace Orchard.Mvc.ViewModels { + public class BaseViewModel { + } +} diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index 8ef923f50..c8c2368ed 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -139,6 +139,7 @@ +