protected override void Load(ContainerBuilder builder) { var initializationService = new InitializationStatusService { IsInitialized = false }; builder.RegisterInstance(initializationService).As <IInitializationStatusService>(); // registering IAzureTable types builder .Register(c => new AzureTable <SurveyRow>(c.Resolve <CloudStorageAccount>(), AzureConstants.Tables.Surveys)) .As <IAzureTable <SurveyRow> >(); builder .Register(c => new AzureTable <QuestionRow>(c.Resolve <CloudStorageAccount>(), AzureConstants.Tables.Questions)) .As <IAzureTable <QuestionRow> >(); // registering IAzureQueue types builder .Register(c => new AzureQueue <SurveyAnswerStoredMessage>(c.Resolve <CloudStorageAccount>(), AzureConstants.Queues.SurveyAnswerStoredStandard)) .Named <IAzureQueue <SurveyAnswerStoredMessage> >(SubscriptionKind.Standard.ToString()); builder .Register(c => new AzureQueue <SurveyAnswerStoredMessage>(c.Resolve <CloudStorageAccount>(), AzureConstants.Queues.SurveyAnswerStoredPremium)) .Named <IAzureQueue <SurveyAnswerStoredMessage> >(SubscriptionKind.Premium.ToString()); // registering IAzureBlobContainer types builder .Register(c => new EntitiesBlobContainer <List <string> >(c.Resolve <CloudStorageAccount>(), AzureConstants.BlobContainers.SurveyAnswersLists)) .As <IAzureBlobContainer <List <string> > >(); builder .Register(c => new EntitiesBlobContainer <Tenant>(c.Resolve <CloudStorageAccount>(), AzureConstants.BlobContainers.Tenants)) .As <IAzureBlobContainer <Tenant> >(); builder .Register(c => new FilesBlobContainer(c.Resolve <CloudStorageAccount>(), AzureConstants.BlobContainers.Logos, "image/jpeg")) .As <IAzureBlobContainer <byte[]> >(); // registering Store types builder .RegisterType <SurveyStore>() .As <ISurveyStore>(); builder .RegisterType <TenantStore>() .As <ITenantStore>(); builder .Register(c => new SurveyAnswerStore( c.Resolve <ITenantStore>(), c.Resolve <ISurveyAnswerContainerFactory>(), c.ResolveNamed <IAzureQueue <SurveyAnswerStoredMessage> >(SubscriptionKind.Standard.ToString()), c.ResolveNamed <IAzureQueue <SurveyAnswerStoredMessage> >(SubscriptionKind.Premium.ToString()), c.Resolve <IAzureBlobContainer <List <string> > >())) .As <ISurveyAnswerStore>(); builder .RegisterType <EntitiesBlobContainer <SurveyAnswer> >() .As <IAzureBlobContainer <SurveyAnswer> >(); builder.RegisterType <SurveyAnswerContainerFactory>() .As <ISurveyAnswerContainerFactory>(); }
protected override void Load(ContainerBuilder builder) { var initializationService = new InitializationStatusService { IsInitialized = false }; builder.RegisterInstance(initializationService).As <IInitializationStatusService>(); builder.Register(c => new Dictionary <string, TenantSurveyProcessingInfo>()).As <IDictionary <string, TenantSurveyProcessingInfo> >(); // registering IAzureTable types builder .Register(c => new AzureTable <SurveyRow>(c.Resolve <CloudStorageAccount>(), AzureConstants.Tables.Surveys)) .As <IAzureTable <SurveyRow> >(); builder .Register(c => new AzureTable <QuestionRow>(c.Resolve <CloudStorageAccount>(), AzureConstants.Tables.Questions)) .As <IAzureTable <QuestionRow> >(); // registering IAzureQueue types builder .Register(c => new AzureQueue <SurveyAnswerStoredMessage>(c.Resolve <CloudStorageAccount>(), AzureConstants.Queues.SurveyAnswerStoredStandard)) .Named <IAzureQueue <SurveyAnswerStoredMessage> >(SubscriptionKind.Standard.ToString()); builder .Register(c => new AzureQueue <SurveyAnswerStoredMessage>(c.Resolve <CloudStorageAccount>(), AzureConstants.Queues.SurveyAnswerStoredPremium)) .Named <IAzureQueue <SurveyAnswerStoredMessage> >(SubscriptionKind.Premium.ToString()); builder .Register(c => new AzureQueue <SurveyTransferMessage>(c.Resolve <CloudStorageAccount>(), AzureConstants.Queues.SurveyTransferRequest, TimeSpan.FromMinutes(1))) .As <IAzureQueue <SurveyTransferMessage> >(); // registering IAzureBlobContainer types builder .Register(c => new EntitiesBlobContainer <List <string> >(c.Resolve <CloudStorageAccount>(), AzureConstants.BlobContainers.SurveyAnswersLists)) .As <IAzureBlobContainer <List <string> > >(); builder .Register(c => new EntitiesBlobContainer <Tenant>(c.Resolve <CloudStorageAccount>(), AzureConstants.BlobContainers.Tenants)) .As <IAzureBlobContainer <Tenant> >(); builder .Register(c => new FilesBlobContainer(c.Resolve <CloudStorageAccount>(), AzureConstants.BlobContainers.Logos, "image/jpeg")) .As <IAzureBlobContainer <byte[]> >(); builder .Register(c => new EntitiesBlobContainer <SurveyAnswersSummary>(c.Resolve <CloudStorageAccount>(), AzureConstants.BlobContainers.SurveyAnswersSummaries)) .As <IAzureBlobContainer <SurveyAnswersSummary> >(); // registering Store types builder .RegisterType <SurveyStore>().As <ISurveyStore>(); builder .RegisterType <TenantStore>().As <ITenantStore>(); builder .Register(c => new SurveyAnswerStore( c.Resolve <ITenantStore>(), c.Resolve <ISurveyAnswerContainerFactory>(), c.ResolveNamed <IAzureQueue <SurveyAnswerStoredMessage> >(SubscriptionKind.Standard.ToString()), c.ResolveNamed <IAzureQueue <SurveyAnswerStoredMessage> >(SubscriptionKind.Premium.ToString()), c.Resolve <IAzureBlobContainer <List <string> > >())) .As <ISurveyAnswerStore>(); builder .RegisterType <SurveyAnswersSummaryStore>().As <ISurveyAnswersSummaryStore>(); builder .RegisterType <SurveySqlStore>().As <ISurveySqlStore>(); builder .RegisterType <SurveyTransferStore>().As <ISurveyTransferStore>(); builder .RegisterType <EntitiesBlobContainer <SurveyAnswer> >() .As <IAzureBlobContainer <SurveyAnswer> >(); builder.RegisterType <SurveyAnswerContainerFactory>() .As <ISurveyAnswerContainerFactory>(); builder.RegisterType <UpdatingSurveyResultsSummaryCommand>(); builder.RegisterType <TransferSurveysToSqlAzureCommand>(); }