示例#1
0
        /// <summary>
        /// Configures the system will settings that can be consumed accross tiers
        /// Set all the config values based upon environment
        /// This will be changed to read from a config file or database
        /// </summary>
        /// <param name="systemEnvironment"></param>
        public static void Configure()
        {
            Configuration.systemEnvironment = EnvironmentStartup.GetEnvironment;
            string databaseConnectionString = EnvironmentStartup.GetDatabaseConnectionString;


            // Configure DI so we can resolve our Configuration Repository
            RegisterTypes.Configure(Configuration.systemEnvironment);


            string systemEnv = Configuration.systemEnvironment.ToString().ToUpper();

            Sample.Azure.Common.Setting.SettingService.Set("RedisCacheConnection", "samplebase.redis.cache.windows.net,abortConnect=false,ssl=true,password=<<REMOVED>>");

            Sample.Azure.Common.Setting.SettingService.Set("CloudStorageAccountName", "samplebase");
            Sample.Azure.Common.Setting.SettingService.Set("CloudStorageKey", "<<REMOVED>>");
            Sample.Azure.Common.Setting.SettingService.Set("CloudStorageBlobEndPoint", "https://samplebase.blob.core.windows.net");
            Sample.Azure.Common.Setting.SettingService.Set("CloudStorageQueueEndPoint", "https://samplebase.queue.core.windows.net");
            Sample.Azure.Common.Setting.SettingService.Set("CloudStorageTableEndPoint", "https://samplebase.table.core.windows.net");
            Sample.Azure.Common.Setting.SettingService.Set("CloudStorageFileEndPoint", "https://samplebase.file.core.windows.net");

            Sample.Azure.Common.Setting.SettingService.Set("SaveAndReadBlobTimeoutInMinutes", "5");
            Sample.Azure.Common.Setting.SettingService.Set("SaveAndReadQueueTimeoutInMinutes", "5");
            Sample.Azure.Common.Setting.SettingService.Set("SearchIndexerService-CheckQueue-Interval-In-Milliseconds", "500");
            Sample.Azure.Common.Setting.SettingService.Set("Azure-Search-Name", "samplebase"); //.search.windows.net");
            Sample.Azure.Common.Setting.SettingService.Set("Azure-Search-ApiKey", "<<REMOVED>>");
            Sample.Azure.Common.Setting.SettingService.Set("AzureSearchCORS", "*");            // comma seperated
            Sample.Azure.Common.Setting.SettingService.Set("Azure-Search-QueryKey", "<<REMOVED>>");

            Sample.Azure.Common.Setting.SettingService.Set("DocumentDBEndPoint", "https://samplebase.documents.azure.com:443/");
            Sample.Azure.Common.Setting.SettingService.Set("DocumentDBAuthKey", "<<REMOVED>>");
            Sample.Azure.Common.Setting.SettingService.Set("DocumentDBDatabase", "SampleBase");
            Sample.Azure.Common.Setting.SettingService.Set("DocumentDBCollection", "Customers");
        } // Configure
        public static void Configure(Environment.SystemEnvironment systemEnvironment)
        {
            // Use Azure blob storage
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Repository.IFileRepository,
                                                    Sample.Azure.Repository.File.FileRepository>();

            // Use Azure redis cache
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Repository.ICacheRepository,
                                                    Sample.Azure.Repository.Cache.RedisCacheManager>();


            // Use Azure queues
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Repository.IQueueRepository,
                                                    Sample.Azure.Repository.Queue.QueueRepository>();

            // Use Azure Search
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Repository.IIndexerRepository,
                                                    Sample.Azure.Repository.Search.IndexerRepository>();

            // Exception Handling
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Service.IExceptionLogService,
                                                    Sample.Azure.Service.ExceptionLog.ExceptionLogService>();

            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Repository.IExceptionLogRepository,
                                                    Sample.Azure.Repository.Table.ExceptionLog.ExceptionLogRepository>();

            ////// Customer //////
            // Use Azure table for customers
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Repository.ICustomerRepository,
                                                    Sample.Azure.Repository.Table.Customer.CustomerRepository>();

            // Customer Service
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Service.ICustomerService,
                                                    Sample.Azure.Service.Customer.CustomerService>();

            ////// LargeObject //////
            // Use Azure blob for LargeObject
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Repository.ILargeObjectRepository,
                                                    Sample.Azure.Repository.File.LargeObject.LargeObjectRepository>();

            // LargeObject Service
            Sample.Azure.DI.Container.RegisterType <Sample.Azure.Interface.Service.ILargeObjectService,
                                                    Sample.Azure.Service.LargeObject.LargeObjectService>();
        }