public static IComponentContext RegisterDependancies() { var builder = new ContainerBuilder(); // register dependency builder.RegisterType <PromactErpContext>().As <DbContext>(); builder.RegisterType <ApplicationUserStore>().As <IUserStore <ApplicationUser> >(); builder.RegisterType <ApplicationUserManager>().AsSelf(); builder.RegisterType <ApplicationSignInManager>().AsSelf(); builder.Register <IAuthenticationManager>(c => HttpContext.Current.GetOwinContext().Authentication); // register webapi controller builder.RegisterApiControllers(typeof(OAuthController).Assembly); // register mvc controller builder.RegisterControllers(typeof(HomeController).Assembly); // register webapi controller builder.RegisterApiControllers(typeof(LeaveRequestController).Assembly); builder.RegisterApiControllers(typeof(LeaveReportController).Assembly); builder.RegisterApiControllers(typeof(ScrumReportController).Assembly); builder.RegisterApiControllers(typeof(GroupController).Assembly); // register repositories builder.RegisterGeneric(typeof(Repository <>)).As(typeof(IRepository <>)); builder.RegisterType <LeaveRequestRepository>().As <ILeaveRequestRepository>(); builder.RegisterType <SlackRepository>().As <ISlackRepository>(); builder.RegisterType <ScrumBotRepository>().As <IScrumBotRepository>(); builder.RegisterType <ScrumSetUpRepository>().As <IScrumSetUpRepository>(); builder.RegisterType <StringConstantRepository>().As <IStringConstantRepository>(); builder.RegisterType <Client>().As <IClient>(); builder.RegisterType <Bot>().AsSelf(); builder.RegisterType <OauthCallsRepository>().As <IOauthCallsRepository>(); builder.RegisterType <Util.Email.EmailService>().As <IEmailService>(); builder.RegisterType <AttachmentRepository>().As <IAttachmentRepository>(); builder.RegisterType <ServiceRepository>().As <IServiceRepository>(); builder.RegisterType <HttpClient>().InstancePerDependency(); builder.RegisterType <HttpClientService>().As <IHttpClientService>(); builder.RegisterType <LeaveReportRepository>().As <ILeaveReportRepository>(); builder.RegisterType <TaskMailRepository>().As <ITaskMailRepository>(); builder.RegisterType <SlackUserRepository>().As <ISlackUserRepository>(); builder.RegisterType <BotQuestionRepository>().As <IBotQuestionRepository>(); builder.RegisterType <OAuthLoginRepository>().As <IOAuthLoginRepository>(); builder.RegisterType <SlackChannelRepository>().As <ISlackChannelRepository>(); builder.RegisterType <ScrumReportRepository>().As <IScrumReportRepository>(); builder.RegisterType <EnvironmentVariableRepository>().As <IEnvironmentVariableRepository>(); builder.RegisterType <EmailServiceTemplateRepository>().As <IEmailServiceTemplateRepository>(); builder.RegisterType <OauthCallHttpContextRespository>().As <IOauthCallHttpContextRespository>(); builder.RegisterType <TaskMailReportRepository>().As <ITaskMailReportRepository>(); builder.RegisterType <GroupRepository>().As <IGroupRepository>(); builder.RegisterType <MailSettingRepository>().As <IMailSettingRepository>(); builder.RegisterType <Md5Service>().As <IMd5Service>(); builder.RegisterType <MailSettingDetailsByProjectAndModuleRepository>().As <IMailSettingDetailsByProjectAndModuleRepository>(); builder.RegisterType <RedmineRepository>().As <IRedmineRepository>(); builder.RegisterModule <AutofacWebTypesModule>(); builder.RegisterModule <NLogModule>(); builder.RegisterModule <SimpleNLogModule>(); builder.Register(x => AutoMapperConfiguration.ConfigureMap()).As <IMapper>().SingleInstance(); var container = builder.Build(); // replace mvc dependancy resolver with autofac DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // replace webapi dependancy resolver with autofac GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); return(container); }
public static IComponentContext RegisterDependancies() { var builder = new ContainerBuilder(); var dataContext = new PromactErpContext(DbConnectionFactory.CreateTransient()); builder.RegisterInstance(dataContext).As <DbContext>().SingleInstance(); var httpClientMock = new Mock <IHttpClientService>(); var httpClientMockObject = httpClientMock.Object; builder.RegisterInstance(httpClientMock).As <Mock <IHttpClientService> >(); builder.RegisterInstance(httpClientMockObject).As <IHttpClientService>(); builder.RegisterType <ApplicationUserStore>().As <IUserStore <ApplicationUser> >(); builder.RegisterType <ApplicationUserManager>().AsSelf(); builder.RegisterType <ApplicationSignInManager>().AsSelf(); builder.RegisterType <EnvironmentVariableTestRepository>().As <IEnvironmentVariableRepository>(); builder.Register <IAuthenticationManager>(c => HttpContext.Current.GetOwinContext().Authentication); builder.RegisterGeneric(typeof(Repository <>)).As(typeof(IRepository <>)); builder.RegisterType <LeaveRequestRepository>().As <ILeaveRequestRepository>(); builder.RegisterType <ScrumBotRepository>().As <IScrumBotRepository>(); builder.RegisterType <ScrumSetUpRepository>().As <IScrumSetUpRepository>(); builder.RegisterType <LeaveReportRepository>().As <ILeaveReportRepository>(); builder.RegisterType <ScrumReportRepository>().As <IScrumReportRepository>(); builder.RegisterType <OAuthLoginRepository>().As <IOAuthLoginRepository>(); builder.RegisterType <Client>().As <IClient>(); builder.RegisterType <OauthCallsRepository>().As <IOauthCallsRepository>(); builder.RegisterType <SlackRepository>().As <ISlackRepository>(); builder.RegisterType <AttachmentRepository>().As <IAttachmentRepository>(); builder.RegisterType <SlackUserRepository>().As <ISlackUserRepository>(); builder.RegisterType <StringConstantRepository>().As <IStringConstantRepository>(); builder.RegisterType <SlackChannelRepository>().As <ISlackChannelRepository>(); builder.RegisterType <TaskMailRepository>().As <ITaskMailRepository>(); builder.RegisterType <BotQuestionRepository>().As <IBotQuestionRepository>(); builder.RegisterType <ServiceRepository>().As <IServiceRepository>(); builder.RegisterType <OauthCallHttpContextRespository>().As <IOauthCallHttpContextRespository>(); builder.RegisterType <TaskMailReportRepository>().As <ITaskMailReportRepository>(); builder.RegisterType <MailSettingRepository>().As <IMailSettingRepository>(); var emailServiceMock = new Mock <IEmailService>(); var emailServiceMockObject = emailServiceMock.Object; builder.RegisterInstance(emailServiceMock).As <Mock <IEmailService> >(); builder.RegisterInstance(emailServiceMockObject).As <IEmailService>(); builder.RegisterType <EmailServiceTemplateRepository>().As <IEmailServiceTemplateRepository>(); builder.RegisterType <GroupRepository>().As <IGroupRepository>(); builder.RegisterType <MailSettingDetailsByProjectAndModuleRepository>().As <IMailSettingDetailsByProjectAndModuleRepository>(); var iLoggerMock = new Mock <ILogger>(); var iLoggerMockObject = iLoggerMock.Object; builder.RegisterInstance(iLoggerMock).As <Mock <ILogger> >(); builder.RegisterInstance(iLoggerMockObject).As <ILogger>(); builder.Register(x => AutoMapperConfiguration.ConfigureMap()).As <IMapper>().SingleInstance(); var mockServiceRepository = new Mock <IServiceRepository>(); var mockServiceRepositoryObject = mockServiceRepository.Object; builder.RegisterInstance(mockServiceRepository).As <Mock <IServiceRepository> >(); builder.RegisterInstance(mockServiceRepositoryObject).As <IServiceRepository>(); var httpContext = new Mock <HttpContextBase>(); var httpContextObject = httpContext.Object; builder.RegisterInstance(httpContext).As <Mock <HttpContextBase> >(); builder.RegisterInstance(httpContextObject).As <HttpContextBase>(); builder.RegisterType <RedmineRepository>().As <IRedmineRepository>(); var container = builder.Build(); return(container); }