public IContainer BuildContainer() { var builder = new ContainerBuilder(); var userSubject = new Subject <User>(); builder.Register(x => userSubject).As <IObserver <User> >().SingleInstance(); builder.Register(x => userSubject).As <IObservable <User> >().SingleInstance(); #region Account builder.RegisterType <AccountDbContext>().As <IDbContext>().SingleInstance(); builder.RegisterType <AccountStore>().As <IUserStore <User> >().SingleInstance(); builder.RegisterType <AccountManager>().SingleInstance(); builder.RegisterType <AccountContext>().As <IAccountContext>().SingleInstance(); builder.RegisterType <RoleManager>().SingleInstance(); builder.RegisterType <ClientStore>().As <IClientStore>().SingleInstance(); #endregion #region Mail var mailService = new SMTPMailService(AppSettings.Get <SMTPMailSettings>(), AppSettings.Get <ProprietorSettings>()); builder.Register(m => mailService).As <IEmailService>().SingleInstance(); #endregion #region Storage builder.Register(c => new BlobService()).As <IBlobService>().SingleInstance(); builder.RegisterType <StorageRepository>().AsImplementedInterfaces <IStorageRepository, ConcreteReflectionActivatorData>().SingleInstance(); #endregion builder.RegisterApiControllers(typeof(Startup).Assembly); return(builder.Build()); }
public IContainer BuildContainer(IAppBuilder app) { var builder = new ContainerBuilder(); #region Account builder.RegisterType <AuthDbContext>().As <IDbContext>().SingleInstance(); builder.RegisterType <AccountStore>().As <IUserStore <User> >().SingleInstance(); builder.RegisterType <AccountManager>().SingleInstance(); builder.RegisterType <AccountContext>().As <IAccountContext>().SingleInstance(); builder.RegisterType <RoleManager>().SingleInstance(); builder.RegisterType <ClientStore>().As <IClientStore>().SingleInstance(); #endregion #region Mail var mailService = new SMTPMailService(AppSettings.Get <SMTPMailSettings>(), AppSettings.Get <ProprietorSettings>()); builder.Register(m => mailService).As <IEmailService>().SingleInstance(); #endregion #region Storage builder.Register(c => new BlobService()).As <IBlobService>().SingleInstance(); builder.RegisterType <StorageRepository>().AsImplementedInterfaces <IStorageRepository, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Auth builder.RegisterType <TaskCatOAuthProvider>() .AsImplementedInterfaces <IOAuthAuthorizationServerProvider, ConcreteReflectionActivatorData>().SingleInstance(); builder.RegisterType <TaskCatRefreshTokenProvider>() .AsImplementedInterfaces <IAuthenticationTokenProvider, ConcreteReflectionActivatorData>().SingleInstance(); #endregion builder.RegisterApiControllers(typeof(Startup).Assembly); return(builder.Build()); }
public IContainer BuildContainer() { var builder = new ContainerBuilder(); var jobActivitySubject = new Subject <JobActivity>(); builder.Register(x => jobActivitySubject).As <Subject <JobActivity> >().SingleInstance(); var jobSearchSubject = new Subject <Job>(); builder.Register(x => jobSearchSubject).As <IObserver <Job> >().SingleInstance(); builder.Register(x => jobSearchSubject).As <IObservable <Job> >().SingleInstance(); builder.RegisterType <ApiDbContext>().As <IDbContext>().SingleInstance(); builder.RegisterType <SearchContext>().As <ISearchContext>().SingleInstance(); #region Account builder.RegisterType <AccountStore>().As <IUserStore <User> >().SingleInstance(); builder.RegisterType <AccountManager>().SingleInstance(); builder.RegisterType <AccountContext>().As <IAccountContext>().SingleInstance(); builder.RegisterType <RoleManager>().SingleInstance(); builder.RegisterType <ClientStore>().As <IClientStore>().SingleInstance(); #endregion #region Payment builder.RegisterType <PaymentManager>().AsImplementedInterfaces <IPaymentManager, ConcreteReflectionActivatorData>().SingleInstance(); builder.RegisterType <PaymentService>().AsImplementedInterfaces <IPaymentService, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Mail var mailService = new SMTPMailService(AppSettings.Get <SMTPMailSettings>(), AppSettings.Get <ProprietorSettings>()); builder.Register(m => mailService).As <IEmailService>().SingleInstance(); #endregion #region Job builder.RegisterType <LocalityService>() .AsImplementedInterfaces <ILocalityService, ConcreteReflectionActivatorData>() .SingleInstance(); builder.RegisterType <JobStore>().SingleInstance(); builder.RegisterType <JobManager>().AsImplementedInterfaces <IJobManager, ConcreteReflectionActivatorData>().SingleInstance(); builder.RegisterType <JobRepository>().AsImplementedInterfaces <IJobRepository, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Order builder.RegisterType <SupportedOrderStore>().SingleInstance(); builder.RegisterType <OrderRepository>().AsImplementedInterfaces <IOrderRepository, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Storage builder.Register(c => new BlobService()).As <IBlobService>().SingleInstance(); builder.RegisterType <StorageRepository>().AsImplementedInterfaces <IStorageRepository, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Asset builder.RegisterType <DefaultAssetProvider>().AsImplementedInterfaces <IAssetProvider, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Hrid builder.RegisterType <HRIDService>().AsImplementedInterfaces <IHRIDService, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region DropPoint builder.RegisterType <DropPointService>().AsImplementedInterfaces <IDropPointService, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Vendor builder.RegisterType <VendorService>().AsImplementedInterfaces <IVendorService, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Comment builder.RegisterType <CommentService>().AsImplementedInterfaces <ICommentService, ConcreteReflectionActivatorData>().SingleInstance(); #endregion #region Tags builder.RegisterType <DataTagService>().As <IDataTagService>().SingleInstance(); var tagsIndexSubject = new Subject <TagActivity>(); builder.Register(x => tagsIndexSubject).As <IObserver <TagActivity> >().SingleInstance(); builder.Register(x => tagsIndexSubject).As <IObservable <TagActivity> >().SingleInstance(); #endregion builder.RegisterApiControllers(typeof(Startup).Assembly); return(builder.Build()); }