Ejemplo n.º 1
0
        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>();
        }