public static StepStat CreateFromStep(IValueTaskStep step) { return(new StepStat { Name = step.Name, TimeTaken = step.TimeTaken, ProcessedItemsCount = step.ProcessedItemsCount, }); }
private async ValueTask ExecuteStep(IValueTaskStep step, T context, List <StepStat> stats, CancellationToken token) { if (step is IValueTaskStep <T> stepWithCtx) { stepWithCtx.Context = context; } if (step.CanProcess()) { var dt = DateTime.UtcNow; await step.Process(token); var tt = (DateTime.UtcNow - dt).TotalMilliseconds; step.WasFired = true; step.TimeTaken = tt; stats.Add(StepStat.CreateFromStep(step)); } }