/// <summary> /// Initializes a new instance of the <see cref="ConnectionStringProvider"/> class. /// </summary> /// <param name="settingsReader">settings reader</param> public ConnectionStringProvider(ISettingsReaderAsync settingsReader) { this.settingsReader = settingsReader; }
/// <summary> /// gets the current config, makes sure it is not a production environment, and prints the configuration /// </summary> /// <param name="environmentName">name of the environment that will be created or cleaned</param> /// <param name="kvr">key vault settings reader</param> /// <returns>validate and print task</returns> private static async Task ValidateAndPrintConfiguration(string environmentName, ISettingsReaderAsync kvr) { if (doAll || doTables) { if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("AzureStorageConnectionString"))) { Console.WriteLine("Error! AzureStorageConnectionString in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } } if (doAll || doLogs) { if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("AzureStorageConnectionString"))) { Console.WriteLine("Error! AzureStorageConnectionString in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } } if (doClean && ProdConfiguration.IsProduction(await kvr.ReadValueAsync("AzureStorageConnectionString"))) { Console.WriteLine("Error! Your configuration includes a production service. Aborting..."); System.Environment.Exit(-1); } Console.WriteLine(); Console.Write("Environment name: "); Console.WriteLine(environmentName); Console.WriteLine(); Console.WriteLine("Current configuration:"); if (doAll || doTables) { Console.WriteLine("\tAzure table storage string: " + await kvr.ReadValueAsync("AzureStorageConnectionString")); } if (doAll || doLogs) { Console.WriteLine("\tAzure diagnostics table storage string: " + await kvr.ReadValueAsync("AzureStorageConnectionString")); } Console.WriteLine(); }
/// <summary> /// gets the current config from app.config, make sure it is not a production environment, prints the configuration /// </summary> /// <param name="environmentName">name of the environment that will be created or cleaned</param> /// <param name="kvr">key vault settings reader</param> /// <returns>validate and print task</returns> private static async Task ValidateAndPrintConfiguration(string environmentName, ISettingsReaderAsync kvr) { if (doAll || doSearch) { // check that all of the required settings are not null or whitespace if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("SearchServiceName"))) { Console.WriteLine("Error! SearchServiceName in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("SearchServiceAdminKey"))) { Console.WriteLine("Error! SearchServiceAdminKey in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } } if (doAll || doQueues) { if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("ServiceBusConnectionString"))) { Console.WriteLine("Error! ServiceBusConnectionString in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } } if (doAll || doTables) { if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("AzureStorageConnectionString"))) { Console.WriteLine("Error! AzureStorageConnectionString in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } } if (doAll || doBlobs || doLogs) { if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("AzureBlobStorageConnectionString"))) { Console.WriteLine("Error! AzureBlobStorageConnectionString in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } } if (doAll || doRedis) { if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("VolatileRedisConnectionString"))) { Console.WriteLine("Error! VolatileRedisConnectionString in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } if (string.IsNullOrWhiteSpace(await kvr.ReadValueAsync("PersistentRedisConnectionString"))) { Console.WriteLine("Error! PersistentRedisConnectionString in your configuration is null or whitespace. Aborting..."); System.Environment.Exit(-1); } } // for clean operations, make sure we are not operating on a production service if (doClean && (ProdConfiguration.IsProduction(await kvr.ReadValueAsync("SearchServiceName")) || ProdConfiguration.IsProduction(await kvr.ReadValueAsync("ServiceBusConnectionString")) || ProdConfiguration.IsProduction(await kvr.ReadValueAsync("AzureStorageConnectionString")) || ProdConfiguration.IsProduction(await kvr.ReadValueAsync("AzureBlobStorageConnectionString")) || ProdConfiguration.IsProduction(await kvr.ReadValueAsync("VolatileRedisConnectionString")) || ProdConfiguration.IsProduction(await kvr.ReadValueAsync("PersistentRedisConnectionString")))) { Console.WriteLine("Error! Your configuration includes a production service. Aborting..."); System.Environment.Exit(-1); } Console.WriteLine(); Console.Write("Environment name: "); Console.WriteLine(environmentName); Console.WriteLine(); Console.WriteLine("Current configuration:"); if (doAll || doSearch) { Console.WriteLine("\tsearch service name: " + await kvr.ReadValueAsync("SearchServiceName")); Console.WriteLine("\tsearch admin key: " + await kvr.ReadValueAsync("SearchServiceAdminKey")); } if (doAll || doQueues) { Console.WriteLine("\tservice bus connection string: " + await kvr.ReadValueAsync("ServiceBusConnectionString")); } if (doAll || doTables) { Console.WriteLine("\tazure table storage string: " + await kvr.ReadValueAsync("AzureStorageConnectionString")); } if (doAll || doBlobs || doLogs) { Console.WriteLine("\tazure blob storage string: " + await kvr.ReadValueAsync("AzureBlobStorageConnectionString")); } if (doAll || doRedis) { Console.WriteLine("\tredis connection strings: "); Console.WriteLine("\t Volatile = {0}", await kvr.ReadValueAsync("VolatileRedisConnectionString")); Console.WriteLine("\t Persistent = {0}", await kvr.ReadValueAsync("PersistentRedisConnectionString")); } Console.WriteLine(); Console.WriteLine(); }