コード例 #1
0
        public async Task <T> ExecuteAsync(T input)
        {
            var type        = this.GetType();
            var isOverriden = type.GetMethod("ProcessAsync").DeclaringType == type;

            //Calling async method if availeble otherwise calling sync method
            if (isOverriden)
            {
                input = await ProcessAsync(input);
            }
            else
            {
                input = Process(input);
            }

            if (_nextStep == null)
            {
                return(input);
            }
            else
            {
                return(await _nextStep.ExecuteAsync(input));
            }
        }
コード例 #2
0
 public Task <T> ExecuteAsync(T input)
 {
     return(_rootStep.ExecuteAsync(input));
 }