Example #1
0
        private void ProcessMessage(string ssbMsg)
        {
            int transNumber = 0;

            try
            {
                string actionType = this.GetAcitonType(ssbMsg);
                transNumber = SSBProcessLogBP.CreateLog(ssbMsg, actionType);

                SSBProcesser processer = _ssbChannel.GetProcesser(actionType);
                if (processer == null)
                {
                    this.WriteLog("未找到有效的ActionType,请检查配置");
                    return;
                }

                this.ProcessMessagae(ssbMsg, processer);

                string referenceKey = this.GetReferenceKey(ssbMsg, processer);
                SSBProcessLogBP.UpdateLog(transNumber, referenceKey, actionType);

                this.WriteLog(string.Format("Success , ReferenceKey is {0}", referenceKey));
            }
            catch (Exception ex)
            {
                RetryProcessHelper.WriteLog <string>(
                    ssbMsg
                    , transNumber.ToString()
                    , ex.ToString()
                    , string.Concat("MessageAgent:", _ssbChannel.DataCommand));

                this.WriteLog(ex.Message);
            }
        }
Example #2
0
        public override string GetReferenceKey(string message, SSBProcesser processer)
        {
            message = IPP.Framework.Utility.XmlUtils.RemoveNameSpace(message);

            string referenceKey = XMLHelper.SelectSingleNode(processer.ReferenceKeyXPath, message);

            return(referenceKey);
        }
Example #3
0
        //[RetryErrorHandling]
        private void ProcessMessagae(string message, SSBProcesser processer)
        {
            string serviceName = processer.ProcessService;

            if (processer.CallType == CallType.SP)
            {
                CommonDA.SPProcess(message, serviceName);
            }
            else
            {
                RequestMessage req = new RequestMessage();
                req.Message    = message;
                req.ActionType = processer.ActionType;

                //IProcessMessage service = ServiceBroker.GetService<IProcessMessage>(serviceName);
                //try
                //{
                //    service.Process(message, processer.ActionType);
                //}
                //finally
                //{
                //    ServiceBroker.Close(service);
                //}
                if (ConfigHelper.RestServiceConfig.RestServices.Contains(processer.ProcessService))
                {
                    RestService restServiceConfig = ConfigHelper.RestServiceConfig.RestServices[processer.ProcessService];
                    string      languageCode      = System.Configuration.ConfigurationManager.AppSettings["LanguageCode"];
                    string      companyCode       = System.Configuration.ConfigurationManager.AppSettings["CompanyCode"];
                    ECCentral.Job.Utility.RestClient       client = new ECCentral.Job.Utility.RestClient(restServiceConfig.BaseUrl, languageCode);
                    ECCentral.Job.Utility.RestServiceError error;
                    var ar = client.Update(restServiceConfig.RelativeUrl, req, out error);
                    if (error != null && error.Faults != null && error.Faults.Count > 0)
                    {
                        string errorMsg = "";
                        foreach (var errorItem in error.Faults)
                        {
                            errorMsg += errorItem.ErrorDescription;
                        }
                        ECCentral.Job.Utility.Logger.WriteLog(errorMsg, "JobConsole");
                    }
                }
                else
                {
                    throw new Exception(string.Format("未找到{0}对应的Rest Service配置!", processer.ProcessService));
                }
            }
        }
Example #4
0
        public override string GetReferenceKey(string message, SSBProcesser processer)
        {
            string referenceKey = XMLHelper.SelectSingleNode(processer.ReferenceKeyXPath, message);

            return(referenceKey);
        }
Example #5
0
 public abstract string GetReferenceKey(string message, SSBProcesser processer);