Пример #1
0
        private MSG.Message TransformToCSBDataSetSchemedXDSGWMessage(MSG.Message msg, string msgID)
        {
            if (!_entity.Context.ConfigMgr.Config.EnableXMLTransform)
            {
                return(msg);
            }

            _entity.Context.Log.Write("Begin transforming XDSGW message.");
            string         file = ConfigHelper.GetFullPath(_entity.Context.AppArgument.ConfigFilePath, _entity.Context.ConfigMgr.Config.XSLTFilePath);
            XMLTransformer t    = XMLTransformer.CreateFromFileWithCache(file, _entity.Context.Log);

            if (t == null)
            {
                return(null);
            }

            string csbMsgXml   = "";
            string otherMsgXml = msg.ToXMLString();

            if (!t.TransformString(otherMsgXml, ref csbMsgXml, XSLTExtensionTypes.None))
            {
                return(null);
            }

            MSG.Message csbMsg = XObjectManager.CreateObject <MSG.Message>(csbMsgXml);
            if (csbMsg == null)
            {
                _entity.Context.Log.Write(LogType.Error, "Cannot deserialize the transformed XML into XDSGW message.");
                string fname = string.Format("{0}_transformed", msgID);
                DumpErrorMessage(csbMsgXml, fname);
            }

            _entity.Context.Log.Write("Finish transforming XDSGW message.");
            return(csbMsg);
        }
Пример #2
0
        public override bool SendMessage(HYS.IM.Messaging.Objects.Message message)
        {
            if (message == null || message.Header == null)
            {
                _log.Write(LogType.Error, "MSMQSender cannot send NULL message or message without header.");
                return(false);
            }

            string msgIDInfo = "MSMQSender send message id=" + message.Header.ID.ToString();

            _log.Write(LogType.Debug, msgIDInfo + " serializing.");
            string xmlString = message.ToXMLString();

            lock (queue)    // 20130204 Send() is not thread safe according to msdn.
            {
                using (MessageQueueTransaction trans = new MessageQueueTransaction())
                {
                    try
                    {
                        _log.Write(LogType.Debug, msgIDInfo + " begin.");

                        trans.Begin();
                        queue.Send(xmlString, MSMQHelper.GetMessageLabel(message), trans);
                        trans.Commit();

                        _log.Write(LogType.Debug, msgIDInfo + " end.");
                        return(true);
                    }
                    catch (Exception err)
                    {
                        trans.Abort();
                        //throw err;
                        _log.Write(LogType.Error, "MSMQSender send message failed.");
                        _log.Write(err);
                        return(false);
                    }
                }
            }
        }
Пример #3
0
 private void listBoxMsg_DoubleClick(object sender, EventArgs e)
 {
     MSG.Message msg = this.listBoxMsg.SelectedItem as MSG.Message;
     MessageBox.Show(msg.ToXMLString());
 }
Пример #4
0
 private void DumpErrorMessage(MSG.Message msg, string msgID)
 {
     DumpErrorMessage(msg.ToXMLString(), msgID);
 }