/// <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); }
/// <summary> /// 执行上下文 /// </summary> /// <param name="request">请求参数</param> /// <param name="ctx">上下文参数</param> /// <returns>执行结果</returns> public abstract INGPResponse Process(INGPRequest request, TContext ctx);