/// <summary>
        /// Uses AzureBlobStorageRepository as IConfigRepository
        /// </summary>
        /// <param name="builder">ConfigServerBuilder to add AzureBlobStorageRepository to</param>
        /// <param name="options">Options for AzureBlobStorageRepository</param>
        /// <returns>ConfigServer builder for further configuration</returns>
        public static ConfigServerBuilder UseAzureBlobStorageConfigProvider(this ConfigServerBuilder builder, AzureBlobStorageRepositoryBuilderOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            if (options.Uri == null)
            {
                throw new ArgumentException($"{nameof(options.Uri)} cannot be null", nameof(options));
            }
            if (options.Credentials == null)
            {
                throw new ArgumentException($"{nameof(options.Credentials)} cannot be null", nameof(options));
            }

            builder.ServiceCollection.AddSingleton(options);
            builder.ServiceCollection.AddTransient <IStorageConnector, StorageConnector>();
            builder.ServiceCollection.AddTransient <IConfigRepository, TextStorageConfigurationRepository>();
            builder.ServiceCollection.AddTransient <IConfigProvider, TextStorageConfigurationRepository>();
            builder.ServiceCollection.AddTransient <IConfigClientRepository, TextStorageConfigurationClientRepository>();
            builder.ServiceCollection.AddTransient <IConfigArchive, AzureBlobStorageConfigArchive>();
            builder.ServiceCollection.AddTransient <IConfigurationSnapshotRepository, TextStorageSnapshotRepository>();
            builder.ServiceCollection.AddTransient <ISnapshotStorageConnector, AzureBlobStorageSnapshotStorageConnector>();

            return(builder);
        }
Пример #2
0
        /// <summary>
        /// Uses InMemoryProvider as IConfigRepository
        /// </summary>
        /// <param name="builder">ConfigServerBuilder to add InMemoryProvider to</param>
        /// <returns>ConfigServer builder for further configuration</returns>
        public static ConfigServerBuilder UseInMemoryProvider(this ConfigServerBuilder builder)
        {
            var repo = new InMemoryRepository();

            builder.ServiceCollection.Add(ServiceDescriptor.Singleton <IConfigRepository>(repo));
            builder.ServiceCollection.Add(ServiceDescriptor.Singleton <IConfigProvider>(repo));
            return(builder);
        }
Пример #3
0
 private void UseFileStorage(ConfigServerBuilder builder)
 {
     builder.UseFileConfigProvider(new FileConfigRespositoryBuilderOptions {
         ConfigStorePath = @"./SeedData/Configs"
     })
     .UseFileResourceProvider(new FileResourceRepositoryBuilderOptions {
         ResourceStorePath = @"./SeedData/Resources"
     });
 }
Пример #4
0
 private void UseFileStorage(ConfigServerBuilder builder)
 {
     builder.UseFileConfigProvider(new FileConfigRespositoryBuilderOptions {
         ConfigStorePath = Env.ContentRootPath + "/FileStore/Configs"
     })
     .UseFileResourceProvider(new FileResourceRepositoryBuilderOptions {
         ResourceStorePath = Env.ContentRootPath + "/FileStore/Resources"
     });
 }
        /// <summary>
        /// Uses FileResourceRepository as IConfigRepository
        /// </summary>
        /// <param name="builder">ConfigServerBuilder to add FileResourceRepository to</param>
        /// <param name="options">Options for FileResourceRepository</param>
        /// <returns>ConfigServer builder for further configuration</returns>
        public static ConfigServerBuilder UseAzureBlobStorageResourceProvider(this ConfigServerBuilder builder, AzureBlobStorageResourceStoreOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            builder.ServiceCollection.Add(ServiceDescriptor.Singleton(options));
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IResourceStore, AzureBlobStorageResourceStore>());
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IResourceArchive, AzureBlobStorageResourceArchive>());

            return(builder);
        }
Пример #6
0
 private void UseAzureBlobStorage(ConfigServerBuilder builder)
 {
     builder.UseAzureBlobStorageConfigProvider(new AzureBlobStorageRepositoryBuilderOptions
     {
         Uri         = new Uri("http://127.0.0.1:10000/devstoreaccount1"),
         Credentials = new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("devstoreaccount1", "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="),
         Container   = "configs",
     })
     .UseAzureBlobStorageResourceProvider(new AzureBlobStorageResourceStoreOptions
     {
         Uri         = new Uri("http://127.0.0.1:10000/devstoreaccount1"),
         Credentials = new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("devstoreaccount1", "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="),
         Container   = "resources",
     });
 }
        /// <summary>
        /// Uses FileResourceRepository as IConfigRepository
        /// </summary>
        /// <param name="builder">ConfigServerBuilder to add FileResourceRepository to</param>
        /// <param name="options">Options for FileResourceRepository</param>
        /// <returns>ConfigServer builder for further configuration</returns>
        public static ConfigServerBuilder UseFileResourceProvider(this ConfigServerBuilder builder, FileResourceRepositoryBuilderOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            if (string.IsNullOrWhiteSpace(options.ResourceStorePath))
            {
                throw new ArgumentException($"{nameof(FileResourceRepositoryBuilderOptions.ResourceStorePath)} cannot be null or whitespace", nameof(options));
            }
            builder.ServiceCollection.Add(ServiceDescriptor.Singleton(options));
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IResourceStore, FileResourceStore>());
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IResourceArchive, FileResourceArchive>());

            return(builder);
        }
        /// <summary>
        /// Uses FileConfigRepository as IConfigRepository
        /// </summary>
        /// <param name="builder">ConfigServerBuilder to add FileConfigRepository to</param>
        /// <param name="options">Options for FileConfigRepository</param>
        /// <returns>ConfigServer builder for further configuration</returns>
        public static ConfigServerBuilder UseFileConfigProvider(this ConfigServerBuilder builder, FileConfigRespositoryBuilderOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            if (string.IsNullOrWhiteSpace(options.ConfigStorePath))
            {
                throw new ArgumentException($"{nameof(FileConfigRespositoryBuilderOptions.ConfigStorePath)} cannot be null or whitespace", nameof(options));
            }
            options.JsonSerializerSettings = options.JsonSerializerSettings ?? new JsonSerializerSettings();
            builder.ServiceCollection.AddMemoryCache();
            builder.ServiceCollection.Add(ServiceDescriptor.Singleton(options));
            builder.ServiceCollection.Add(ServiceDescriptor.Singleton <ITextStorageSetting>(options));
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IConfigRepository, TextStorageConfigurationRepository>());
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IConfigProvider, TextStorageConfigurationRepository>());
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IStorageConnector, FileStorageConnector>());

            return(builder);
        }
        /// <summary>
        /// Uses FileConfigRepository as IConfigRepository
        /// </summary>
        /// <param name="builder">ConfigServerBuilder to add FileConfigRepository to</param>
        /// <param name="options">Options for FileConfigRepository</param>
        /// <returns>ConfigServer builder for further configuration</returns>
        public static ConfigServerBuilder UseFileConfigProvider(this ConfigServerBuilder builder, FileConfigRespositoryBuilderOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            if (string.IsNullOrWhiteSpace(options.ConfigStorePath))
            {
                throw new ArgumentException($"{nameof(FileConfigRespositoryBuilderOptions.ConfigStorePath)} cannot be null or whitespace", nameof(options));
            }
            builder.ServiceCollection.AddSingleton(options);
            builder.ServiceCollection.AddTransient <IConfigRepository, TextStorageConfigurationRepository>();
            builder.ServiceCollection.AddTransient <IConfigClientRepository, TextStorageConfigurationClientRepository>();
            builder.ServiceCollection.AddTransient <IConfigProvider, TextStorageConfigurationRepository>();
            builder.ServiceCollection.AddTransient <IStorageConnector, FileStorageConnector>();
            builder.ServiceCollection.AddTransient <IConfigArchive, FileConfigArchive>();
            builder.ServiceCollection.AddTransient <IConfigurationSnapshotRepository, TextStorageSnapshotRepository>();
            builder.ServiceCollection.AddTransient <ISnapshotStorageConnector, FileSnapshotStorageConnector>();


            return(builder);
        }
Пример #10
0
        /// <summary>
        /// Uses AzureBlobStorageRepository as IConfigRepository
        /// </summary>
        /// <param name="builder">ConfigServerBuilder to add AzureBlobStorageRepository to</param>
        /// <param name="options">Options for AzureBlobStorageRepository</param>
        /// <returns>ConfigServer builder for further configuration</returns>
        public static ConfigServerBuilder UseFileConfigProvider(this ConfigServerBuilder builder, AzureBlobStorageRepositoryBuilderOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            if (options.Uri == null)
            {
                throw new ArgumentException($"{nameof(options.Uri)} cannot be null", nameof(options));
            }
            if (options.Credentials == null)
            {
                throw new ArgumentException($"{nameof(options.Credentials)} cannot be null", nameof(options));
            }

            options.JsonSerializerSettings = options.JsonSerializerSettings ?? new JsonSerializerSettings();
            builder.ServiceCollection.AddMemoryCache();
            builder.ServiceCollection.Add(ServiceDescriptor.Singleton(options));
            builder.ServiceCollection.Add(ServiceDescriptor.Singleton <ITextStorageSetting>(options));
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IStorageConnector, StorageConnector>());
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IConfigRepository, TextStorageConfigurationRepository>());
            builder.ServiceCollection.Add(ServiceDescriptor.Transient <IConfigProvider, TextStorageConfigurationRepository>());
            return(builder);
        }