Exemplo n.º 1
0
        /// <summary>
        /// 处理操作
        /// </summary>
        /// <param name="request">请求参数</param>
        /// <param name="ctx">上下文参数</param>
        /// <returns>返回处理结果</returns>
        public virtual INGPResponse HandleProcess(INGPRequest request, TContext ctx)
        {
            INGPResponse result = null;

            do
            {
                // 当前执行结果
                result = Process(request, ctx);

                IProcessCommand <TContext> step = null;
                if (!_steps.TryDequeue(out step) || step == null)
                {
                    break;
                }

                var nextRequest = result as INGPRequest;
                step.HandleProcess(nextRequest, ctx);
            }while (_steps.Count > 0);

            return(result);
        }
Exemplo n.º 2
0
 /// <summary>
 /// 执行上下文
 /// </summary>
 /// <param name="request">请求参数</param>
 /// <param name="ctx">上下文参数</param>
 /// <returns>执行结果</returns>
 public abstract INGPResponse Process(INGPRequest request, TContext ctx);