Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        /// <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));
        }