/// <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); }
/// <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); }
private void UseFileStorage(ConfigServerBuilder builder) { builder.UseFileConfigProvider(new FileConfigRespositoryBuilderOptions { ConfigStorePath = @"./SeedData/Configs" }) .UseFileResourceProvider(new FileResourceRepositoryBuilderOptions { ResourceStorePath = @"./SeedData/Resources" }); }
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); }
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); }
/// <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); }