private void InitializeProgress(long goal, ImportStage stage) { this._goal = goal; this._stashedProgress = 0; this._progress = 0; this._currentStage = stage; this._newInternalStage = false; }
public override void Progress(ImportStage stage, int percent) { if (percent > 100) { fail("Expected percentage to be 0..100% but was " + percent); } AtomicInteger stageProgress = ProgressConflict.computeIfAbsent(stage, s => new AtomicInteger()); int previous = stageProgress.getAndSet(percent); if (previous > percent) { fail("Progress should go forwards only, but went from " + previous + " to " + percent); } }
/// <summary> /// Pass XmlParser.DataSet tables to the Morningstar Staging Database, and update the BackgroundWorker as work is completed. /// </summary> private void WriteToStagingTables() { ImportStage.DeleteFromAllTables(); if (!ContinueProcess) { return; } WriteToEventLog("Sending data to server-side staging database.", 0.40m); SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(_accessStage.ConnectionString, SqlBulkCopyOptions.TableLock); sqlBulkCopy.DestinationTableName = "dbo.Import"; sqlBulkCopy.WriteToServer(this.ResultSet.Import); this.ResultSet.Import.Rows.Clear(); if (!ContinueProcess) { return; } sqlBulkCopy.DestinationTableName = "dbo.Managers"; sqlBulkCopy.WriteToServer(this.ResultSet.Manager); this.ResultSet.Manager.Rows.Clear(); if (!ContinueProcess) { return; } PercentComplete = 0.45m; sqlBulkCopy.DestinationTableName = "dbo.ManagersEducation"; sqlBulkCopy.WriteToServer(this.ResultSet.ManagerEducation); this.ResultSet.ManagerEducation.Rows.Clear(); if (!ContinueProcess) { return; } PercentComplete = 0.48m; sqlBulkCopy.DestinationTableName = "dbo.ManagersCredentials"; sqlBulkCopy.WriteToServer(this.ResultSet.ManagerCredential); this.ResultSet.ManagerEducation.Rows.Clear(); if (!ContinueProcess) { return; } PercentComplete = 0.50m; sqlBulkCopy.DestinationTableName = "dbo.Funds"; sqlBulkCopy.WriteToServer(this.ResultSet.Fund); this.ResultSet.Fund.Rows.Clear(); if (!ContinueProcess) { return; } PercentComplete = 0.55m; sqlBulkCopy.DestinationTableName = "dbo.FundDetails"; sqlBulkCopy.WriteToServer(this.ResultSet.FundDetail); this.ResultSet.FundDetail.Rows.Clear(); if (!ContinueProcess) { return; } PercentComplete = 0.60m; sqlBulkCopy.DestinationTableName = "dbo.Advisors"; sqlBulkCopy.WriteToServer(this.ResultSet.Advisor); this.ResultSet.Advisor.Rows.Clear(); }