public static void StartUp(ILogger functionLogger, ExecutionContext context) { _logger = new AggregateLogger("das-assessor-service-func-externalapidatasync", functionLogger, context); var configuration = ConfigurationHelper.GetConfiguration(); _logger.LogInformation("Initialising bootstrapper ...."); _logger.LogInformation("Config Received"); Container = new Container(configure => { configure.Scan(x => { x.TheCallingAssembly(); x.WithDefaultConventions(); }); configure.For <IAggregateLogger>().Use(_logger).Singleton(); configure.For <IWebConfiguration>().Use(configuration).Singleton(); configure.For <IDbConnection>().Use(c => new SqlConnection(configuration.SqlConnectionString)); }); var language = "en-GB"; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(language); }
public async Task Execute() { _aggregateLogger.LogInformation("External Api Data Sync Function Started"); _aggregateLogger.LogInformation($"Process Environment = {EnvironmentVariableTarget.Process}"); if (_allowDataSync) { try { _aggregateLogger.LogInformation("Proceeding with External Api Data Sync..."); using (var destinationSqlConnection = new SqlConnection(_destinationConnectionString)) { if (!destinationSqlConnection.State.HasFlag(ConnectionState.Open)) { destinationSqlConnection.Open(); } using (var transaction = destinationSqlConnection.BeginTransaction()) { Step0_TearDown_Database(transaction); Step1_Organisation_Data(transaction); Step2_Contacts_Data(transaction); Step3_Standard_Data(transaction); Step4_OrganisationStandard_Data(transaction); Step5_Obfuscate_Personal_Data(transaction); Step6_Generate_Test_Data(transaction); transaction.Commit(); } } _aggregateLogger.LogInformation("External Api Data Sync completed"); } catch (TransactionAbortedException ex) { _aggregateLogger.LogError(ex, "Transaction was aborted during External Api Data Sync"); } catch (SqlException ex) { _aggregateLogger.LogError(ex, "SqlException occurred during External Api Data Sync"); } catch (Exception ex) { _aggregateLogger.LogError(ex, "Unknown Error occurred during External Api Data Sync"); } } else { _aggregateLogger.LogInformation("External Api Data Sync is disabled at this time"); } await Task.CompletedTask; }