Adjusting enough things to get through the setup module's initial action

--HG--
branch : dev
This commit is contained in:
Louis DeJardin
2010-09-02 22:51:29 -07:00
parent c4e1cbeb53
commit 5fc858ed12
7 changed files with 20 additions and 19 deletions

View File

@@ -15,6 +15,7 @@ using Orchard.DisplayManagement;
using Orchard.DisplayManagement.Descriptors; using Orchard.DisplayManagement.Descriptors;
using Orchard.DisplayManagement.Implementation; using Orchard.DisplayManagement.Implementation;
using Orchard.DisplayManagement.Shapes; using Orchard.DisplayManagement.Shapes;
using Orchard.Environment;
using Orchard.Environment.Extensions; using Orchard.Environment.Extensions;
using Orchard.Localization; using Orchard.Localization;
using Orchard.Mvc; using Orchard.Mvc;
@@ -53,6 +54,7 @@ namespace Orchard.Setup {
builder.RegisterType<DataServicesProviderFactory>().As<IDataServicesProviderFactory>().InstancePerLifetimeScope(); builder.RegisterType<DataServicesProviderFactory>().As<IDataServicesProviderFactory>().InstancePerLifetimeScope();
builder.RegisterType<DefaultCommandManager>().As<ICommandManager>().InstancePerLifetimeScope(); builder.RegisterType<DefaultCommandManager>().As<ICommandManager>().InstancePerLifetimeScope();
builder.RegisterType<HelpCommand>().As<ICommandHandler>().InstancePerLifetimeScope(); builder.RegisterType<HelpCommand>().As<ICommandHandler>().InstancePerLifetimeScope();
builder.RegisterType<DefaultWorkContextAccessor>().As<IWorkContextAccessor>();
// setup mode specific implementations of needed service interfaces // setup mode specific implementations of needed service interfaces
builder.RegisterType<SafeModeThemeService>().As<IThemeService>().InstancePerLifetimeScope(); builder.RegisterType<SafeModeThemeService>().As<IThemeService>().InstancePerLifetimeScope();
@@ -66,6 +68,7 @@ namespace Orchard.Setup {
builder.RegisterType<DisplayHelperFactory>().As<IDisplayHelperFactory>(); builder.RegisterType<DisplayHelperFactory>().As<IDisplayHelperFactory>();
builder.RegisterType<DefaultDisplayManager>().As<IDisplayManager>(); builder.RegisterType<DefaultDisplayManager>().As<IDisplayManager>();
builder.RegisterType<DefaultShapeFactory>().As<IShapeFactory>(); builder.RegisterType<DefaultShapeFactory>().As<IShapeFactory>();
builder.RegisterType<ShapeHelperFactory>().As<IShapeHelperFactory>();
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>(); builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
} }

View File

@@ -33,7 +33,7 @@ namespace Orchard.Environment.Extensions {
public IEnumerable<ExtensionDescriptor> AvailableExtensions() { public IEnumerable<ExtensionDescriptor> AvailableExtensions() {
return _folders.SelectMany(folder => folder.AvailableExtensions()); return _folders.SelectMany(folder => folder.AvailableExtensions());
} }
public IEnumerable<FeatureDescriptor> AvailableFeatures() { public IEnumerable<FeatureDescriptor> AvailableFeatures() {
var featureDescriptors = AvailableExtensions().SelectMany(ext => ext.Features); var featureDescriptors = AvailableExtensions().SelectMany(ext => ext.Features);
var featureDescriptorsOrdered = featureDescriptors.OrderByDependencies(HasDependency); var featureDescriptorsOrdered = featureDescriptors.OrderByDependencies(HasDependency);
@@ -61,7 +61,13 @@ namespace Orchard.Environment.Extensions {
foreach (var descriptor in AvailableExtensions()) { foreach (var descriptor in AvailableExtensions()) {
// Extensions that are Themes don't have buildable components. // Extensions that are Themes don't have buildable components.
if (String.Equals(descriptor.ExtensionType, "Module", StringComparison.OrdinalIgnoreCase)) { 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) if (entry != null)
yield return entry; yield return entry;
} }

View File

@@ -116,8 +116,10 @@ namespace Orchard.Environment {
} }
} }
ControllerBuilder.Current.SetControllerFactory(new OrchardControllerFactory());
var hostContainer = new DefaultOrchardHostContainer(container); var hostContainer = new DefaultOrchardHostContainer(container);
MvcServiceLocator.SetCurrent(hostContainer); //MvcServiceLocator.SetCurrent(hostContainer);
OrchardHostContainerRegistry.RegisterHostContainer(hostContainer); OrchardHostContainerRegistry.RegisterHostContainer(hostContainer);
return container; return container;

View File

@@ -11,7 +11,6 @@ namespace Orchard.Mvc {
public class MvcModule : Module { public class MvcModule : Module {
protected override void Load(ContainerBuilder moduleBuilder) { protected override void Load(ContainerBuilder moduleBuilder) {
moduleBuilder.RegisterType<OrchardControllerFactory>().As<IControllerFactory>().InstancePerDependency();
moduleBuilder.RegisterType<FilterResolvingActionInvoker>().As<IActionInvoker>().InstancePerDependency(); moduleBuilder.RegisterType<FilterResolvingActionInvoker>().As<IActionInvoker>().InstancePerDependency();
moduleBuilder.RegisterType<ShellRoute>().InstancePerDependency(); moduleBuilder.RegisterType<ShellRoute>().InstancePerDependency();

View File

@@ -20,10 +20,7 @@ namespace Orchard.Mvc {
object controller; object controller;
var service = new KeyedService(serviceKey, typeof(IController)); var service = new KeyedService(serviceKey, typeof(IController));
// Locate the container this route is bound against var workContext = requestContext.GetWorkContext();
var workContextAccessor = GetWorkContextAccessor(routeData);
var workContext = workContextAccessor != null ? workContextAccessor.GetContext(requestContext.HttpContext) : null;
if (workContext != null && if (workContext != null &&
workContext.Resolve<ILifetimeScope>().TryResolve(service, out controller)) { workContext.Resolve<ILifetimeScope>().TryResolve(service, out controller)) {
@@ -55,16 +52,5 @@ namespace Orchard.Mvc {
return GetAreaName(routeData.Route); 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;
}
} }
} }

View File

@@ -0,0 +1,4 @@
namespace Orchard.Mvc.ViewModels {
public class BaseViewModel {
}
}

View File

@@ -139,6 +139,7 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Mvc\ViewModels\BaseViewModel.cs" />
<Compile Include="Caching\Signals.cs" /> <Compile Include="Caching\Signals.cs" />
<Compile Include="Collections\IPageOfItems.cs" /> <Compile Include="Collections\IPageOfItems.cs" />
<Compile Include="Collections\PageOfItems.cs" /> <Compile Include="Collections\PageOfItems.cs" />