public async Task StartProcess() { Console.WriteLine("----------------------------"); Console.WriteLine("Process Service StartProcess"); TransactionCreateContext context = TransactionCreateContext.CreateNewContext(); await _mainModule.Process(context); }
public async Task Process(TransactionCreateContext context) { Console.WriteLine("BM - BaseModule Process"); context.ModuleDepth++; Console.WriteLine("BM - BaseModule BeginModule"); await BeginModule(context); foreach (var step in _steps) { var stepName = step.GetType().Name; if (stepName.EndsWith("Module")) { Console.WriteLine("-------------Next Module---------------"); } else { Console.WriteLine("-------------Next Step---------------"); } Console.WriteLine(stepName); await step.Process(context); } Console.WriteLine("BM - BaseModule CompleteModule"); await CompleteModule(context); context.ModuleDepth--; }
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); }
public async Task Process(TransactionCreateContext context) { Console.WriteLine("BS - BaseStep Process"); if (context.AttemptingResume) { // skip steps until we've reached our resume point if (context.ResumeAt != GetType().Name) { context.StepsCompleted++; return; } context.AttemptingResume = false; } await RealBeginStep(context); if (ShouldRunStep(context) && await ShouldRunStepAsync(context)) { await ProcessData(context); } await RealCompleteStep(context); }
protected override async Task AdjustData(TransactionCreateContext context) { Console.WriteLine("1.2.4 - Basic Step Two AdjustData"); await Task.CompletedTask; }
protected override Task ProcessData(TransactionCreateContext context) { Console.WriteLine("1.2.3 - Basic Step Two ProcessData"); return(Task.CompletedTask); }
protected override Task BeginStep(TransactionCreateContext context) { Console.WriteLine("1.2.2 - Basic Step Two Begin Step"); return(Task.CompletedTask); }
/// An extra optional async check for ShouldRunStep. If overridden, this is combined with the result of ShouldRunStep. protected virtual Task <bool> ShouldRunStepAsync(TransactionCreateContext context) { Console.WriteLine("BS - BaseStep ShouldRunStepAsync"); return(Task.FromResult(true)); }
protected override async Task AdjustData(TransactionCreateContext context) { Console.WriteLine("3.1.4 - Product Step One AdjustData"); await Task.CompletedTask; }
// virtual method from BaseStep (optional) protected override Task BeginStep(TransactionCreateContext context) { Console.WriteLine("3.1.2 - Product Step One Begin Step"); return(Task.CompletedTask); }
protected virtual Task CompleteStep(TransactionCreateContext context) { Console.WriteLine("BS - BaseStep CompleteStep"); Console.WriteLine("--------------BaseStep Ends--------------"); return(Task.CompletedTask); }
protected virtual Task AdjustData(TransactionCreateContext context) { Console.WriteLine("BS - BaseStep AdjustData"); return(Task.CompletedTask); }
protected virtual void CreateDefaults(TransactionCreateContext context) { Console.WriteLine("BS - BaseStep CreateDefaults"); }
protected abstract Task ProcessData(TransactionCreateContext context);
protected override bool ShouldRunStep(TransactionCreateContext context) { Console.WriteLine("1.2.1 - Basic Step Two ShouldRunStep"); return(true); }
// virtual method from BaseStep protected override bool ShouldRunStep(TransactionCreateContext context) { Console.WriteLine("3.1.1 - Product Step One ShouldRunStep"); return(true); }
protected override async Task BeginModule(TransactionCreateContext context) { Console.WriteLine("-------------Main Module Begins---------------"); Console.WriteLine("Main Module BeginModule"); await Task.CompletedTask; }
// abstract method from BaseStep protected override Task ProcessData(TransactionCreateContext context) { Console.WriteLine("3.1.3 - Product Step One ProcessData"); return(Task.CompletedTask); }
protected override Task CompleteModule(TransactionCreateContext context) { Console.WriteLine("Main Module CompleteModule"); Console.WriteLine("---------------Main Module Ends-------------"); return(Task.CompletedTask); }
protected virtual Task CompleteModule(TransactionCreateContext context) { Console.WriteLine("BM - BaseModule CompleteModule"); Console.WriteLine("--------------BaseModule Ends--------------"); return(Task.CompletedTask); }
protected abstract bool ShouldRunStep(TransactionCreateContext context);