Esempio n. 1
0
            /// <summary>
            /// Set the Routing Input tag Node to the Envelope
            /// </summary>
            /// <param name="routingInput"></param>
            /// <returns></returns>
            public SoapEnvelopeBuilder SetRoutingInput(RoutingInput routingInput)
            {
                var xmlDocument = new XmlDocument {
                    PreserveWhitespace = true
                };

                using (XmlWriter writer = xmlDocument.CreateNavigator().AppendChild())
                {
                    var serializer = new XmlSerializer(typeof(RoutingInput));
                    serializer.Serialize(writer, routingInput, XmlSerializerNamespaceInfo);
                }

                _routingInputHeaderElement = _document.ImportNode(xmlDocument.DocumentElement, deep: true);

                return(this);
            }
            public void ThenResultContainsRoutingInput()
            {
                // Arrange
                var routingInput = new RoutingInput
                {
                    UserMessage = new RoutingInputUserMessage
                    {
                        MessageInfo       = new MessageInfo(),
                        CollaborationInfo = new CollaborationInfo(),
                        PartyInfo         = new PartyInfo()
                    }
                };

                // Act
                XmlDocument envelope =
                    _builder.SetRoutingInput(routingInput)
                    .Build();

                // Assert
                Assert.NotNull(envelope);
                envelope.SelectEbmsNode("/s12:Envelope/s12:Header/mh:RoutingInput");
            }
        private static void SetMultiHopHeaders(SoapEnvelopeBuilder builder, AS4Message as4Message)
        {
            if (as4Message.IsSignalMessage && as4Message.FirstSignalMessage.IsMultihopSignal)
            {
                var to = new To {
                    Role = Constants.Namespaces.EbmsNextMsh
                };
                builder.SetToHeader(to);

                string actionValue = as4Message.FirstSignalMessage.MultihopAction;
                builder.SetActionHeader(actionValue);

                var routingInput = new RoutingInput
                {
                    UserMessage                   = as4Message.FirstSignalMessage.MultiHopRouting.UnsafeGet,
                    mustUnderstand                = false,
                    mustUnderstandSpecified       = true,
                    IsReferenceParameter          = true,
                    IsReferenceParameterSpecified = true
                };

                builder.SetRoutingInput(routingInput);
            }
        }