Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        /// <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));
                }
            }
        }