/// <summary> /// 包装子Job /// </summary> /// <param name="httpJobItem"></param> /// <param name="success"></param> /// <param name="fail"></param> private static void AppendChildJob(BaseHttpJobInfo httpJobItem, HttpCallbackJob success, HttpCallbackJob fail) { if (success != null) { string ___data; if (success.Data is string _dataStr) { ___data = _dataStr; } else { ___data = JsonConvert.SerializeObject(success.Data); } httpJobItem.Success = new BaseHttpJobInfo() { Url = success.Url, Method = success.Method, Data = ___data, ContentType = success.ContentType, Timeout = success.Timeout, BasicUserName = success.BasicUserName, BasicPassword = success.BasicPassword, AgentClass = success.AgentClass, Headers = success.Headers, CallbackEL = success.CallbackEL }; AppendChildJob(httpJobItem.Success, success.Success, success.Fail); } if (fail != null) { string ___data; if (fail.Data is string _dataStr) { ___data = _dataStr; } else { ___data = JsonConvert.SerializeObject(fail.Data); } httpJobItem.Fail = new BaseHttpJobInfo() { Url = fail.Url, Method = fail.Method, Data = ___data, ContentType = fail.ContentType, Timeout = fail.Timeout, BasicUserName = fail.BasicUserName, BasicPassword = fail.BasicPassword, AgentClass = fail.AgentClass, Headers = fail.Headers, CallbackEL = fail.CallbackEL }; AppendChildJob(httpJobItem.Fail, fail.Success, fail.Fail); } }
/// <summary> /// 检查子Job参数 /// </summary> /// <param name="success"></param> /// <param name="fail"></param> /// <exception cref="ArgumentNullException"></exception> private static void CheckChildJob(HttpCallbackJob success, HttpCallbackJob fail) { var list = new List <HttpCallbackJob>(); void AddAllJobItem(HttpCallbackJob item, List <HttpCallbackJob> listOut) { listOut.Add(item); if (item.Success != null) { AddAllJobItem(item.Success, listOut); } if (item.Fail != null) { AddAllJobItem(item.Fail, listOut); } } if (success != null) { AddAllJobItem(success, list); } if (fail != null) { AddAllJobItem(fail, list); } foreach (var job in list) { if (string.IsNullOrEmpty(job.Url)) { throw new ArgumentNullException(nameof(HttpCallbackJob.Url)); } } }