90 lines
2.8 KiB
C#
90 lines
2.8 KiB
C#
using System.Reflection;
|
|
using System.Web.Http;
|
|
using Autofac;
|
|
using Autofac.Extras.NLog;
|
|
using Autofac.Integration.Mvc;
|
|
using Prevu.Core.Workflow;
|
|
using Prevu.DAL.Main.Accessors;
|
|
using Prevu.DAL.Main;
|
|
using Prevu.DAL.Data.Main;
|
|
using EnVisage;
|
|
using EnVisage.Code.BLL;
|
|
using System.Web.Mvc;
|
|
using EnVisage.Code.Cache;
|
|
using Prevu.Core.Cache;
|
|
using Prevu.Core.Main;
|
|
using CacheManager = Prevu.Core.Cache.CacheManager;
|
|
|
|
namespace Prevu
|
|
{
|
|
public static class AutofacConfig
|
|
{
|
|
public static void Configure(HttpConfiguration config)
|
|
{
|
|
var builder = new ContainerBuilder();
|
|
|
|
// Register your Web API controllers.
|
|
builder.RegisterControllers(Assembly.GetExecutingAssembly());
|
|
|
|
// OPTIONAL: Register the Autofac filter provider.
|
|
builder.RegisterFilterProvider();
|
|
|
|
#region NLog
|
|
|
|
builder.RegisterModule<SimpleNLogModule>();
|
|
|
|
#endregion
|
|
|
|
#region Db Context
|
|
|
|
builder.RegisterType<PrevuDbContext>().As<PrevuDbContext>().InstancePerRequest();
|
|
builder.RegisterType<EnVisageEntities>().As<EnVisageEntities>().InstancePerRequest();
|
|
|
|
#endregion
|
|
|
|
#region DAL Accessors
|
|
|
|
builder.RegisterType<WorkflowProcessTransitionHistoryAccessor>().As<IWorkflowProcessTransitionHistoryAccessor>();
|
|
builder.RegisterType<ScenarioAccessor>().As<IScenarioAccessor>();
|
|
builder.RegisterType<UserAccessor>().As<IUserAccessor>();
|
|
//builder.RegisterType<UserQuickLinkAccessor>().As<IUserQuickLinkAccessor>();
|
|
|
|
#endregion
|
|
|
|
#region Core classes
|
|
|
|
builder.RegisterType<MainUnit>().As<IMainUnit>();
|
|
builder.RegisterType<WorkflowManager>().As<IWorkflowManager>();
|
|
builder.RegisterType<UserManager>().As<IUserManager>();
|
|
builder.RegisterType<CacheManager>().As<ICacheManager>().SingleInstance();
|
|
|
|
#endregion
|
|
|
|
#region Envisage managers
|
|
|
|
builder.RegisterType<ScenarioManager>().As<ScenarioManager>();
|
|
builder.RegisterType<ProjectManager>().As<ProjectManager>();
|
|
builder.RegisterType<ApplicationUserManager>().As<ApplicationUserManager>();
|
|
|
|
#endregion
|
|
|
|
#region Prevu UI Managers
|
|
|
|
builder.RegisterType<ScenarioUIManager>().As<ScenarioUIManager>();
|
|
|
|
#endregion
|
|
|
|
#region Envisage classes
|
|
|
|
builder.RegisterType<UsersCache>().As<UsersCache>().SingleInstance();
|
|
|
|
#endregion
|
|
|
|
builder.RegisterControllers(typeof(MvcApplication).Assembly);
|
|
|
|
// Set the dependency resolver to be Autofac.
|
|
var container = builder.Build();
|
|
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
|
|
}
|
|
}
|
|
} |