private async Task RealCompleteStep(TransactionCreateContext context) { Console.WriteLine("BS - BaseStep RealCompleteStep"); await CompleteStep(context); context.StepsCompleted++; var stepName = GetType().Name; context.LastSuccessfulStep = stepName; await context.PersistProgress(); var stats = new Dictionary <string, object> { ["instanceId"] = context.InstanceId, ["percentComplete"] = context.PercentComplete, ["stepName"] = stepName }; var stepTime = context.FinishTimingAndGetStepElapsedMilliseconds(stepName); if (stepTime != -1) { stats["stepElapsedTimeMs"] = stepTime; } context.SimultaneousSteps--; if (context.SimultaneousSteps != 0) { throw new Exception("somehow the copy process has become internally inconsistent"); } }
private async Task RealBeginStep(TransactionCreateContext context) { Console.WriteLine("BS - BaseStep RealBeginStep"); if (context.SimultaneousSteps > 0) { throw new Exception("Detected an attempt to run steps in parallel. Do not run steps in parallel."); } context.SimultaneousSteps++; context.LastAttemptedStep = GetType().Name; await context.PersistProgress(); await BeginStep(context); }