private static void DisplaySettings(JsonSettings mySettingsConfig) { Console.WriteLine("Database Connection string: " + mySettingsConfig.DatabaseConnectionString); Console.WriteLine("Marketo Instance: " + mySettingsConfig.Marketo.InstanceUrl); Console.WriteLine("Marketo ClientId: " + mySettingsConfig.Marketo.ClientId); Console.WriteLine("Marketo Secret: " + mySettingsConfig.Marketo.Secret); }
private static async Task InitiatePurge(JsonSettings mySettingsConfig) { IDatabaseRepository databaseRepository = new DatabaseRepository(mySettingsConfig.DatabaseConnectionString); IMarketoGateway marketoGateway = new MarketoGateway(mySettingsConfig.Marketo.InstanceUrl, mySettingsConfig.Marketo.ClientId, mySettingsConfig.Marketo.Secret); IMarketoPurgingService marketoPurgingService = new MarketoPurgingService(databaseRepository, marketoGateway); bool marketoTestResult = false; Console.WriteLine("Ready to test Marketo connection? Y/N"); string marketoTestQuestionAnswer = Console.ReadLine(); if (marketoTestQuestionAnswer.Equals("Y", StringComparison.InvariantCultureIgnoreCase) || marketoTestQuestionAnswer.Equals("Yes", StringComparison.InvariantCultureIgnoreCase)) { marketoTestResult = marketoPurgingService.TestMarketoConnection(); Console.WriteLine( marketoTestResult ? "Marketo Connection successful and token has been retrieved" : "Marketo Connection failed. Please fix configuration and try again."); } if (marketoTestResult) { bool databaseTestResult = false; Console.WriteLine("Ready to test SQL Database connection? Y/N"); string sqlDatabaseTestQuestionAnswer = Console.ReadLine(); if (sqlDatabaseTestQuestionAnswer.Equals("Y", StringComparison.InvariantCultureIgnoreCase) || sqlDatabaseTestQuestionAnswer.Equals("Yes", StringComparison.InvariantCultureIgnoreCase)) { DatabaseTestDto dbTestResult = await marketoPurgingService.TestDatabaseConnection(); databaseTestResult = dbTestResult.Success; Console.WriteLine( dbTestResult.Success ? "Database Connection successful, " + dbTestResult.RecordsRetrieved + " records retrieved." : "Database Connection failed with error " + dbTestResult.Error + ". Please fix configuration and try again."); } if (databaseTestResult) { Console.WriteLine( "Would you like to proceed to delete all Opportunities and OpportunityRoles? Y/N"); string purgeQuestionAnswer = Console.ReadLine(); if (purgeQuestionAnswer.Equals("Y", StringComparison.InvariantCultureIgnoreCase) || purgeQuestionAnswer.Equals("Yes", StringComparison.InvariantCultureIgnoreCase)) { await marketoPurgingService.Purge(); Console.WriteLine("Purge has been completed."); } } } }
static async Task Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); IConfigurationRoot configuration = builder.Build(); JsonSettings mySettingsConfig = new JsonSettings(); configuration.Bind(mySettingsConfig); DisplaySettings(mySettingsConfig); await InitiatePurge(mySettingsConfig); Console.ReadKey(); }