123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- using Newtonsoft.Json.Linq;
- using PTMedicalInsurance.Helper;
- using PTMedicalInsurance.Variables;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace PTMedicalInsurance.Business
- {
- class ProcessManager
- {
- private List<AbstractProcess> Processes { get; set; }
- public ProcessManager()
- {
- Processes = new List<AbstractProcess>();
- }
- public ProcessManager(List<AbstractProcess> processes)
- {
- Processes = processes;
- }
- /// <summary>
- /// 增加单个处理流程
- /// </summary>
- /// <param name="process"></param>
- public ProcessManager Add(AbstractProcess process)
- {
- Processes.Add(process);
- return this;
- }
- /// <summary>
- /// 运行
- /// </summary>
- /// <param name="input"></param>
- /// <returns></returns>
- public string Run(JObject input)
- {
- JObject orginalInput = (JObject)input?.DeepClone();
- string data = "";
- int code = 0;
- // 按顺序执行业务
- foreach (var process in Processes)
- {
- if (process.UseOrginal) {
- process.OrginalInput = orginalInput;
- input = orginalInput; //原始参数
- }
- var ret = process.Process(input);
- data = ret.Data;
- code = ret.Code;
- if (code < 0)
- {
- //异常
- if (string.IsNullOrEmpty(data))
- {
- data = ret.ErrMsg;
- }
- break;
- }
- if (!string.IsNullOrEmpty(data))
- {
- input = JObject.Parse(data);
- }
- }
- JObject rtn = JObject.Parse(data);
- //返回值检测(兼容)
- if (!rtn.ContainsKey("errorCode"))
- {
- rtn = JsonHelper.setIrisReturnValue(code, "",rtn);
- Global.writeLog("异常返回值检测", data, rtn.ToString());
- }
- return rtn.ToString();
- }
- }
- }
|