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(); #endregion #region Db Context builder.RegisterType().As().InstancePerRequest(); builder.RegisterType().As().InstancePerRequest(); #endregion #region DAL Accessors builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); //builder.RegisterType().As(); #endregion #region Core classes builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As().SingleInstance(); #endregion #region Envisage managers builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); #endregion #region Prevu UI Managers builder.RegisterType().As(); #endregion #region Envisage classes builder.RegisterType().As().SingleInstance(); #endregion builder.RegisterControllers(typeof(MvcApplication).Assembly); // Set the dependency resolver to be Autofac. var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); } } }