mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-14 19:04:51 +08:00
Adjusting enough things to get through the setup module's initial action
--HG-- branch : dev
This commit is contained in:
@@ -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>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
@@ -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();
|
||||||
|
|
||||||
|
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
4
src/Orchard/Mvc/ViewModels/BaseViewModel.cs
Normal file
4
src/Orchard/Mvc/ViewModels/BaseViewModel.cs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
namespace Orchard.Mvc.ViewModels {
|
||||||
|
public class BaseViewModel {
|
||||||
|
}
|
||||||
|
}
|
@@ -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" />
|
||||||
|
Reference in New Issue
Block a user