private void InitializeProgress(long goal, ImportStage stage)
 {
     this._goal             = goal;
     this._stashedProgress  = 0;
     this._progress         = 0;
     this._currentStage     = stage;
     this._newInternalStage = false;
 }
Exemple #2
0
            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();
        }