private void DoParallelCopyConsolidationMap(ConsolidationTablesBuilder b) { var pOptions = new ParallelOptions { MaxDegreeOfParallelism = _configuration.MaxDegreeOfParallelism }; Parallel.ForEach(b.GetTables(), pOptions, (table, loopState) => { if (!loopState.IsExceptional) { var p = new ConsolidationMapEtlProcess( table, AdminConnectionString, PublicConnectionString, Timeouts.PublicDatabase, _configuration.Pipelines); p.Execute(); var errors = p.GetAllErrors().ToArray(); if (errors.Any()) { loopState.Stop(); string msg = $"Errors occurred during execution of consolidation map staging process: {table.Name}"; _log.Error(msg); // throw the first exception throw new ApplicationException(msg, errors[0]); } } }); }
private void CopyConsolidationMap() { _log.Debug("Copying consolidation map into public stage"); // copies consolidation tables into the staging schema... // (the consolidation tables are already empty) var b = new ConsolidationTablesBuilder(); DoParallelCopyConsolidationMap(b); }