internal ConsumedMessage ToConsumedMessage(ISerializer serializer, MessageBinding messageBinding)
 {
     return new ConsumedMessage(serializer.Deserialize(_args.Body,
                                                       messageBinding.RuntimeType,
                                                       _args.BasicProperties.CreateEncoding()),
                                _args);
 }
    public static MessageBinding CreateInputOutputBinding(string myBindName,
                                                          bool isInputBinding)
    {
// <Snippet2>

        // Value isInputBinding = true ---> return type = InputBinding.
        // Value isInputBinding = false --> return type = OutputBinding.
// <Snippet3>
// <Snippet4>
        MessageBinding myMessageBinding = null;

        switch (isInputBinding)
        {
        case true:
            myMessageBinding = new InputBinding();
            Console.WriteLine("Added an InputBinding");
            break;

        case false:
            myMessageBinding = new OutputBinding();
            Console.WriteLine("Added an OutputBinding");
            break;
        }
// </Snippet2>
        myMessageBinding.Name = myBindName;
        SoapBodyBinding mySoapBodyBinding = new SoapBodyBinding();

        mySoapBodyBinding.Use = SoapBindingUse.Literal;
        myMessageBinding.Extensions.Add(mySoapBodyBinding);
        Console.WriteLine("Added extensibility element of type : " +
                          mySoapBodyBinding.GetType());
// </Snippet3>
// </Snippet4>
        return(myMessageBinding);
    }
Beispiel #3
0
        public void ShouldMatchSubscription()
        {
            var allowed = new DatabaseStatus()
            {
                DatacenterName = "Paris",
                FailureType    = "Oh no!"
            };

            var notAllowed = new DatabaseStatus()
            {
                DatacenterName = "London",
                FailureType    = "Oh no!"
            };

            var key = BindingKey.Create(allowed);

            var subscription = Subscription.Matching <DatabaseStatus>(x => x.DatacenterName == "Paris");

            var allowedMessageBinding    = MessageBinding.FromMessage(allowed);
            var notAllowedMessageBinding = MessageBinding.FromMessage(notAllowed);

            Assert.IsTrue(subscription.Matches(allowedMessageBinding));

            Assert.IsFalse(subscription.Matches(notAllowedMessageBinding));
        }
Beispiel #4
0
        private void AddOperationMessageBindingContent(BinaryMode binaryMode, MessageBinding messageBinding)
        {
            if (binaryMode != BinaryMode.Attachment)
            {
                AddOperationContentBinding(messageBinding.Extensions, x => x);
                return;
            }

            var soapPart = new MimePart();

            addGlobalNamespace(NamespaceConstants.MIME);

#if NETSTANDARD1_6_1
            AddOperationContentBinding(soapPart.Extensions, x => x);
#else
            AddOperationContentBinding(soapPart.Extensions, protocol.Style.CreateSoapHeader);
#endif

            var filePart = new MimePart {
                Extensions = { new MimeContentBinding {
                                   Part = "file", Type = "application/binary"
                               } }
            };

            messageBinding.Extensions.Add(new MimeMultipartRelatedBinding {
                Parts = { soapPart, filePart }
            });
        }
        public async Task Setup()
        {
            MessageBinding bindingModel = new MessageBinding();

            bindingModel.Payload = "ZG9jdG9yV2hv"; //doctorWho
            await DifferencesClient.LeftTask(basePath, 1, 5, bindingModel);
        }
 internal ConsumedMessage ToConsumedMessage(ISerializer serializer, MessageBinding messageBinding)
 {
     return(new ConsumedMessage(serializer.Deserialize(_args.Body,
                                                       messageBinding.RuntimeType,
                                                       _args.BasicProperties.CreateEncoding()),
                                _args));
 }
        public void Setup()
        {
            InnerTransport = new TestTransport(Self.EndPoint);

            var configuration = new Mock <IBusConfiguration>();

            configuration.Setup(x => x.IsPersistent).Returns(IsPersistent);
            configuration.Setup(x => x.StartReplayTimeout).Returns(TimeSpan.FromMinutes(60));

            PeerDirectory = new Mock <IPeerDirectory>();
            PeerDirectory.Setup(dir => dir.GetPeersHandlingMessage(MessageBinding.Default <PersistMessageCommand>())).Returns(new[] { PersistencePeer });
            PeerDirectory.Setup(dir => dir.GetPeersHandlingMessage(It.IsAny <StartMessageReplayCommand>())).Returns(new[] { PersistencePeer });
            PeerDirectory.Setup(dir => dir.GetPeersHandlingMessage(It.IsAny <PersistMessageCommand>())).Returns(new[] { PersistencePeer });
            PeerDirectory.Setup(dir => dir.GetPeersHandlingMessage(It.IsAny <MessageHandled>())).Returns(new[] { PersistencePeer });
            PeerDirectory.Setup(dir => dir.IsPersistent(AnotherPersistentPeer.Id)).Returns(true);
            PeerDirectory.Setup(dir => dir.IsPersistent(AnotherNonPersistentPeer.Id)).Returns(false);

            Transport = new PersistentTransport(configuration.Object, InnerTransport, PeerDirectory.Object, new DefaultMessageSendingStrategy());
            Transport.Configure(Self.Id, "test");

            MessagesForwardedToBus     = new ConcurrentQueue <TransportMessage>();
            Transport.MessageReceived += MessagesForwardedToBus.Enqueue;

            Transport.OnRegistered();
            var startMessageReplayMessage = InnerTransport.Messages.FirstOrDefault(x => x.TransportMessage.MessageTypeId == MessageUtil.TypeId <StartMessageReplayCommand>());

            if (startMessageReplayMessage != null)
            {
                StartMessageReplayCommand        = (StartMessageReplayCommand)startMessageReplayMessage.TransportMessage.ToMessage();
                StartMessageReplayCommandTargets = startMessageReplayMessage.Targets;
            }

            InnerTransport.Messages.Clear();
        }
        public void DifferencesRight_AreNotEqual_ReturnComparisonResult()
        {
            MessageBinding bindingModel = new MessageBinding();

            bindingModel.Payload = "ZG9jdG9yU3RyYW5nZQ=="; //doctorStrange
            ComparisonResult result = DifferencesClient.RightTask(basePath, 1, 57, bindingModel).Result;

            Assert.AreEqual(result.AreEqual, ComparisonResultEnum.NotEqual);
        }
        public void DifferencesRight_AreEqualWithDifferentPayload_ReturnComparisonResult()
        {
            MessageBinding bindingModel = new MessageBinding();

            bindingModel.Payload = "ZG9jdG9yV2hp"; //doctorWhi
            ComparisonResult result = DifferencesClient.RightTask(basePath, 1, 57, bindingModel).Result;

            Assert.AreEqual(result.AreEqual, ComparisonResultEnum.Equal);
            Assert.AreEqual(result.Offsets, new int[] { 8 });
            Assert.AreEqual(result.OffsetsLength, 1);
        }
Beispiel #10
0
        private static void ExportMessageHeaderBinding(MessageBinding messageBinding, WsdlEndpointConversionContext context, XmlQualifiedName header, bool isEncoded)
        {
            // For brevity, assume Soap12HeaderBinding for Soap 1.2
            SoapHeaderBinding binding = new Soap12HeaderBinding();

            binding.Part    = "Header";
            binding.Message = header;
            binding.Use     = isEncoded ? SoapBindingUse.Encoded : SoapBindingUse.Literal;

            messageBinding.Extensions.Add(binding);
        }
        public void AddMessageFromBind(MessageBinding binding)
        {
            Message message = new Message()
            {
                Email       = binding.Email,
                MessageText = binding.Message,
                Subject     = binding.Subject
            };

            this.context.Messages.Add(message);
            this.context.SaveChanges();
        }
Beispiel #12
0
        public void AddMessageFromBind(MessageBinding msgBinding)
        {
            var message = new Message()
            {
                MessageText = msgBinding.Message,
                Sender      = msgBinding.Sender,
                Subject     = msgBinding.Subject
            };

            context.Messages.Add(message);
            context.SaveChanges();
        }
Beispiel #13
0
        private void ReplayMessagesWaitingForPersistence()
        {
            var persistencePeers = _peerDirectory.GetPeersHandlingMessage(MessageBinding.Default <PersistMessageCommand>());

            _logger.InfoFormat("Sending {0} enqueued messages to the persistence", _messagesWaitingForPersistence.Count);

            IMessage messageToSend;

            while (_messagesWaitingForPersistence.TryTake(out messageToSend))
            {
                SendToPersistenceService(messageToSend, persistencePeers);
            }
        }
        void IWsdlImportExtension.ImportEndpoint(WsdlImporter importer, WsdlEndpointConversionContext context)
        {
            if (context == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
            }

#pragma warning suppress 56506 // Microsoft, these properties cannot be null in this context
            if (context.Endpoint.Binding == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context.Endpoint.Binding");
            }

            BindingElementCollection          bindingElements = GetBindingElements(context);
            MessageEncodingBindingElement     messageEncodingBindingElement = bindingElements.Find <MessageEncodingBindingElement>();
            TextMessageEncodingBindingElement textEncodingBindingElement    = messageEncodingBindingElement as TextMessageEncodingBindingElement;

            if (messageEncodingBindingElement != null)
            {
                Type elementType = messageEncodingBindingElement.GetType();
                if (elementType != typeof(TextMessageEncodingBindingElement) &&
                    elementType != typeof(BinaryMessageEncodingBindingElement) &&
                    elementType != typeof(MtomMessageEncodingBindingElement))
                {
                    return;
                }
            }

            EnsureMessageEncoding(context, messageEncodingBindingElement);

            foreach (OperationBinding wsdlOperationBinding in context.WsdlBinding.Operations)
            {
                OperationDescription operation = context.GetOperationDescription(wsdlOperationBinding);

                for (int i = 0; i < operation.Messages.Count; i++)
                {
                    MessageDescription message            = operation.Messages[i];
                    MessageBinding     wsdlMessageBinding = context.GetMessageBinding(message);
                    ImportMessageSoapAction(context.ContractConversionContext, message, wsdlMessageBinding, i != 0 /*isResponse*/);
                }

                foreach (FaultDescription fault in operation.Faults)
                {
                    FaultBinding wsdlFaultBinding = context.GetFaultBinding(fault);
                    if (wsdlFaultBinding != null)
                    {
                        ImportFaultSoapAction(context.ContractConversionContext, fault, wsdlFaultBinding);
                    }
                }
            }
        }
Beispiel #15
0
        public IActionResult Contacts(HttpResponse response, MessageBinding messageBindingModel)
        {
            if (string.IsNullOrEmpty(messageBindingModel.Email) || string.IsNullOrEmpty(messageBindingModel.Subject))
            {
                this.Redirect(response, "/home/contacts");
                return(null);
            }

            MessagesService service = new MessagesService(Data.Data.Context);

            service.AddMessageFromBind(messageBindingModel);

            this.Redirect(response, "/home/index");
            return(this.View());
        }
Beispiel #16
0
        public IActionResult Contacts(MessageBinding messageBinding)
        {
            if (string.IsNullOrEmpty(messageBinding.Email) || string.IsNullOrEmpty(messageBinding.Subject))
            {
                this.Redirect(new HttpResponse()
                {
                }, "/home/contacts");
            }

            MessageServices service = new MessageServices(Data.Data.Context);

            service.MessageFromBind(messageBinding);

            return(this.View("Home", "Index"));
        }
Beispiel #17
0
        public IActionResult Contacts(HttpResponse responce, MessageBinding msgBinding)
        {
            if (string.IsNullOrEmpty(msgBinding.Sender) || string.IsNullOrEmpty(msgBinding.Subject))
            {
                this.Redirect(responce, "/home/contacts");
                return(null);
            }

            var msgService = new MessagesService(Data.Data.Context);

            msgService.AddMessageFromBind(msgBinding);

            this.Redirect(responce, "/home/index");
            return(this.View());
        }
 internal static bool Check(SoapHeaderBinding soapHeaderBinding, MessageBinding messageBinding, WsdlWarningHandler warningHandler)
 {
     if ((soapHeaderBinding.Message == null) || soapHeaderBinding.Message.IsEmpty)
     {
         string str     = System.ServiceModel.SR.GetString("XsdMissingRequiredAttribute1", new object[] { "message" });
         string warning = System.ServiceModel.SR.GetString("IgnoreSoapHeaderBinding3", new object[] { messageBinding.OperationBinding.Name, messageBinding.OperationBinding.Binding.ServiceDescription.TargetNamespace, str });
         warningHandler(warning);
         return(false);
     }
     if (string.IsNullOrEmpty(soapHeaderBinding.Part))
     {
         string str3 = System.ServiceModel.SR.GetString("XsdMissingRequiredAttribute1", new object[] { "part" });
         string str4 = System.ServiceModel.SR.GetString("IgnoreSoapHeaderBinding3", new object[] { messageBinding.OperationBinding.Name, messageBinding.OperationBinding.Binding.ServiceDescription.TargetNamespace, str3 });
         warningHandler(str4);
         return(false);
     }
     return(true);
 }
        /// <summary>
        /// Exports the message header binding.
        /// </summary>
        /// <param name="info">The info.</param>
        /// <param name="messageBinding">The message binding.</param>
        /// <param name="qsName">Name of the qs.</param>
        /// <param name="isEncoded">if set to <c>true</c> [is encoded].</param>
        private void ExportMessageHeaderBinding(CustomHeaderExportInfo info,
                                                MessageBinding messageBinding, XmlQualifiedName qsName)
        {
            ModuleProc PROC = new ModuleProc(this.DYN_MODULE_NAME, "ExportMessageHeaderBinding");

            try
            {
                SoapHeaderBinding binding = new SoapHeaderBinding();
                binding.Part    = info.PartName;
                binding.Message = qsName;
                binding.Use     = (info.IsEncoded ? SoapBindingUse.Encoded : SoapBindingUse.Literal);

                messageBinding.Extensions.Add(binding);
            }
            catch (Exception ex)
            {
                Log.Exception(PROC, ex);
            }
        }
Beispiel #20
0
            internal void ExportMessageBinding(OperationDescription operation, Type messageContractExporterType)
            {
                bool             flag;
                bool             flag2;
                OperationBinding operationBinding = this.endpointContext.GetOperationBinding(operation);

                if (GetStyleAndUse(operation, messageContractExporterType, out flag, out flag2))
                {
                    SoapOperationBinding binding2 = SoapHelper.GetOrCreateSoapOperationBinding(this.endpointContext, operation, this.exporter);
                    if (binding2 != null)
                    {
                        binding2.Style = flag ? SoapBindingStyle.Rpc : SoapBindingStyle.Document;
                        if (flag)
                        {
                            SoapBinding binding3 = (SoapBinding)this.endpointContext.WsdlBinding.Extensions.Find(typeof(SoapBinding));
                            binding3.Style = binding2.Style;
                        }
                        binding2.SoapAction = operation.Messages[0].Action;
                        foreach (MessageDescription description in operation.Messages)
                        {
                            Message        message;
                            MessageBinding messageBinding = this.endpointContext.GetMessageBinding(description);
                            if (this.exportedMessages.WsdlHeaderMessages.TryGetValue(new MessageContractExporter.MessageDescriptionDictionaryKey(this.endpointContext.Endpoint.Contract, description), out message))
                            {
                                XmlQualifiedName messageName = new XmlQualifiedName(message.Name, message.ServiceDescription.TargetNamespace);
                                foreach (MessageHeaderDescription description2 in description.Headers)
                                {
                                    if (!description2.IsUnknownHeaderCollection)
                                    {
                                        this.ExportMessageHeaderBinding(description2, messageName, flag2, messageBinding);
                                    }
                                }
                            }
                            this.ExportMessageBodyBinding(description, flag, flag2, messageBinding);
                        }
                        foreach (FaultDescription description3 in operation.Faults)
                        {
                            this.ExportFaultBinding(description3, flag2, operationBinding);
                        }
                    }
                }
            }
        void IWsdlImportExtension.ImportEndpoint(WsdlImporter importer, WsdlEndpointConversionContext context)
        {
            if (context == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context");
            }
            if (context.Endpoint.Binding == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context.Endpoint.Binding");
            }
            MessageEncodingBindingElement encodingBindingElement = GetBindingElements(context).Find <MessageEncodingBindingElement>();

            if (encodingBindingElement != null)
            {
                System.Type type = encodingBindingElement.GetType();
                if (((type != typeof(TextMessageEncodingBindingElement)) && (type != typeof(BinaryMessageEncodingBindingElement))) && (type != typeof(MtomMessageEncodingBindingElement)))
                {
                    return;
                }
            }
            EnsureMessageEncoding(context, encodingBindingElement);
            foreach (OperationBinding binding in context.WsdlBinding.Operations)
            {
                OperationDescription operationDescription = context.GetOperationDescription(binding);
                for (int i = 0; i < operationDescription.Messages.Count; i++)
                {
                    MessageDescription message        = operationDescription.Messages[i];
                    MessageBinding     messageBinding = context.GetMessageBinding(message);
                    ImportMessageSoapAction(context.ContractConversionContext, message, messageBinding, i != 0);
                }
                foreach (FaultDescription description3 in operationDescription.Faults)
                {
                    FaultBinding faultBinding = context.GetFaultBinding(description3);
                    if (faultBinding != null)
                    {
                        ImportFaultSoapAction(context.ContractConversionContext, description3, faultBinding);
                    }
                }
            }
        }
 public MessageDescription GetMessageDescription(MessageBinding messageBinding)
 {
     return(this.messageDescriptionBindings[messageBinding]);
 }
        private static void ImportMessageSoapAction(WsdlContractConversionContext contractContext, MessageDescription message, MessageBinding wsdlMessageBinding, bool isResponse)
        {
            string str = SoapHelper.ReadSoapAction(wsdlMessageBinding.OperationBinding);

            if (((contractContext != null) && (WsdlImporter.WSAddressingHelper.FindWsaActionAttribute(contractContext.GetOperationMessage(message)) == null)) && (str != null))
            {
                if (isResponse)
                {
                    message.Action = "*";
                }
                else
                {
                    message.Action = str;
                }
            }
        }
 internal void AddMessageBinding(MessageDescription messageDescription, MessageBinding wsdlMessageBinding)
 {
     this.wsdlMessageBindings.Add(messageDescription, wsdlMessageBinding);
     this.messageDescriptionBindings.Add(wsdlMessageBinding, messageDescription);
 }
        static void ImportMessageSoapAction(WsdlContractConversionContext contractContext, MessageDescription message, MessageBinding wsdlMessageBinding, bool isResponse)
        {
            string soapAction = SoapHelper.ReadSoapAction(wsdlMessageBinding.OperationBinding);

            if (contractContext != null)
            {
                OperationMessage wsdlOperationMessage = contractContext.GetOperationMessage(message);
                string           wsaAction            = WsdlImporter.WSAddressingHelper.FindWsaActionAttribute(wsdlOperationMessage);
                if (wsaAction == null && soapAction != null)
                {
                    if (isResponse)
                    {
                        message.Action = "*";
                    }
                    else
                    {
                        message.Action = soapAction;
                    }
                }
                //
            }
            else
            {
                //
            }
        }
        public static async Task <ComparisonResult> LeftTask(string basePath, int version, int id, MessageBinding model)
        {
            string apiPath = "{0}/v{1}/diff/{2}/left";

            string methodUrl = string.Format(apiPath, basePath, version, id);

            using (HttpClient client = new HttpClient())
            {
                return(await client.MethodPost <ComparisonResult, MessageBinding>(basePath, methodUrl, model));
            }
        }
Beispiel #27
0
        internal static SoapBodyBinding GetOrCreateSoapBodyBinding(WsdlEndpointConversionContext endpointContext, MessageBinding wsdlMessageBinding, WsdlExporter exporter)
        {
            if (GetSoapVersionState(endpointContext.WsdlBinding, exporter) == EnvelopeVersion.None)
            {
                return(null);
            }
            SoapBodyBinding soapBodyBinding = GetSoapBodyBinding(endpointContext, wsdlMessageBinding);
            EnvelopeVersion soapVersion     = GetSoapVersion(endpointContext.WsdlBinding);

            if (soapBodyBinding != null)
            {
                return(soapBodyBinding);
            }
            return(CreateSoapBodyBinding(soapVersion, wsdlMessageBinding));
        }
Beispiel #28
0
 private static SoapBodyBinding GetSoapBodyBinding(WsdlEndpointConversionContext endpointContext, MessageBinding wsdlMessageBinding)
 {
     foreach (object obj2 in wsdlMessageBinding.Extensions)
     {
         if (obj2 is SoapBodyBinding)
         {
             return((SoapBodyBinding)obj2);
         }
     }
     return(null);
 }
Beispiel #29
0
 public bool Matches(MessageBinding messageBinding)
 {
     return(messageBinding.MessageTypeId == MessageTypeId && Matches(messageBinding.RoutingKey));
 }
Beispiel #30
0
 internal static SoapHeaderBinding CreateSoapHeaderBinding(WsdlEndpointConversionContext endpointContext, MessageBinding wsdlMessageBinding)
 {
     return(CreateSoapHeaderBinding(GetSoapVersion(endpointContext.WsdlBinding), wsdlMessageBinding));
 }
Beispiel #31
0
        private static SoapBodyBinding CreateSoapBodyBinding(EnvelopeVersion version, MessageBinding wsdlMessageBinding)
        {
            SoapBodyBinding extension = null;

            if (version == EnvelopeVersion.Soap12)
            {
                extension = new Soap12BodyBinding();
            }
            else if (version == EnvelopeVersion.Soap11)
            {
                extension = new SoapBodyBinding();
            }
            wsdlMessageBinding.Extensions.Add(extension);
            return(extension);
        }