示例#1
0
        public static void TestDeserializeSuccessResponse(ILoggingService loggingService)
        {
            GovTalkMessageFileName FileNamer = new GovTalkMessageFileName.FileNameBuilder()
                                               .AddLogger(loggingService)
                                               .AddFilePath(@"C:\Temp\")
                                               .AddEnvironment("live")
                                               .AddMessageIntention("PollMessage")
                                               .AddTimestamp("2015_02_02_12_41")
                                               .AddCorrelationId("1853DE80F71CEF4C07B57CD5BDA969D577")
                                               .AddMessageQualifier("response")
                                               .AddCustomNamePart("20150202124118")
                                               .BuildFileName();

            string filename = FileNamer.ToString();

            XmlDocument successMessage = new XmlDocument();

            successMessage.Load(filename);

            GovTalkMessage success = XmlSerializationHelpers.DeserializeMessage(successMessage);

            XmlDocument successXml = new XmlDocument();

            successXml.LoadXml(success.Body.Any[0].OuterXml);

            SuccessResponse successResp = XmlSerializationHelpers.DeserializeSuccessResponse(successXml);

            loggingService.LogInfo(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, successResp.Message[0].Value);
        }
示例#2
0
        public void ReadMessage(XDocument inMessage)
        {
            try
            {
                _message       = XmlSerializationHelpers.DeserializeMessage(inMessage.ToXmlDocument());
                _correlationId = _message.Header.MessageDetails.CorrelationID;
                _qualifier     = _message.Header.MessageDetails.Qualifier.ToString();
                _function      = _message.Header.MessageDetails.Function.ToString();
                if (_message.Header.MessageDetails.GatewayTimestampSpecified)
                {
                    _gatewayTimestamp = _message.Header.MessageDetails.GatewayTimestamp;
                }

                XmlDocument successXml = new XmlDocument();

                if (_message.Body.Any != null)
                {
                    successXml.LoadXml(_message.Body.Any[0].OuterXml);

                    _body = XmlSerializationHelpers.DeserializeSuccessResponse(successXml);
                }
                else
                {
                    MessageType messageType = new MessageType
                    {
                        Value = "No valid SuccessResponse contained in the Body element of this message. Contact Support."
                    };

                    SuccessResponse dummyResponse = new SuccessResponse
                    {
                        IRmarkReceipt = null,
                        Message       = new MessageType[] { messageType },
                        AcceptedTime  = (DateTime)_gatewayTimestamp
                    };

                    _body = dummyResponse;
                }

                _messageRead = true;

                _loggingService.LogInfo(this, "Message read. Response type is Response.");
            }
            catch (Exception ex)
            {
                _loggingService.LogError(this, "Message Reading Exception", ex);

                GovTalkMessageFileName FileNamer = new GovTalkMessageFileName(_loggingService, _configurationRepository);
                string filename = FileNamer.DefaultFileName();

                _loggingService.LogInfo(this, String.Concat("Attempting to save reply document to ", filename, "."));

                inMessage.Save(filename);

                throw ex;
            }
        }