private static void RegisterAutofac(HttpConfiguration config, AppModuleLoader moduleLoader) { var builder = new ContainerBuilder(); builder.RegisterModule <CommonInjectionModule>(); builder.RegisterModule <RepositoryInjectionModule>(); builder.RegisterModule <CqrsInjectionModule>(); builder.RegisterModule(new SuffixAssemblyInjectionModule <BusinessLayer>("Logic")); builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration); builder.Register(c => new AuthorizationFilterAttribute(c.Resolve <IAuthorizationLogic>())) .AsWebApiAuthorizationFilterFor <InvoicesController>() .InstancePerRequest(); builder.RegisterType <DatabaseContext>().AsSelf().InstancePerRequest(); builder.Register(cfg => ProfileAppModule.CreateMapper()).As <IMapper>().SingleInstance(); builder.RegisterApiControllers(typeof(ServiceLayer).Assembly).PropertiesAutowired(); builder.RegisterWebApiFilterProvider(config); builder.Register(cfg => { var header = HttpContext.Current.Request.Headers["API-key"]; if (null != header) { return(new UserData(header)); } return(new UserData(null)); }).As <IUserData>().InstancePerRequest(); var container = builder.Build(); AutofacConfig.Initialize(container); var resolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = resolver; }
private static AppModuleLoader RegisterAppModules() { var moduleLoader = new AppModuleLoader(); moduleLoader.Register <ProfileAppModule>(); ProfileAppModule.AutomapperModule = moduleLoader.GetModule <ProfileAppModule>(); return(moduleLoader); }