/// <summary> /// Executes the specified item thru conveyor. /// </summary> /// <param name="item">The item.</param> public void Execute(T item) { OnConveyorStart?.Invoke(item); foreach (var stage in _stages) { stage.Execute(item); OnStageExecuted?.Invoke(stage.GetType(), item); } }
/// <summary> /// Executes the specified item thru conveyor. /// </summary> /// <param name="item">The item.</param> public Task Execute(T item) { OnConveyorStart?.Invoke(item); foreach (var stage in _stages) { stage.Execute(item).ConfigureAwait(false).GetAwaiter().GetResult(); OnStageExecuted?.Invoke(stage.GetType(), item); } return(Task.Delay(0)); }