Exemplo n.º 1
0
        void DispatchOperationToTransport(IEnumerable <TransportOperation> operations)
        {
            foreach (var transportOperation in operations)
            {
                var deliveryOptions = transportOperation.Options.ToDeliveryOptions();

                deliveryOptions.EnlistInReceiveTransaction = false;

                var message = new TransportMessage(transportOperation.MessageId, transportOperation.Headers)
                {
                    Body = transportOperation.Body
                };

                string ttbr;

                if (transportOperation.Options.TryGetValue("TimeToBeReceived", out ttbr))
                {
                    message.TimeToBeReceived = TimeSpan.Parse(ttbr);
                }

                //dispatch to transport

                if (transportOperation.Options["Operation"] != "Audit")
                {
                    DispatchMessageToTransportBehavior.InvokeNative(deliveryOptions, message);
                }
                else
                {
                    DefaultMessageAuditer.Audit(deliveryOptions as SendOptions, message);
                }
            }
        }
Exemplo n.º 2
0
        void DispatchOperationToTransport(IEnumerable <TransportOperation> operations)
        {
            foreach (var transportOperation in operations)
            {
                var deliveryOptions = transportOperation.Options.ToDeliveryOptions();

                deliveryOptions.EnlistInReceiveTransaction = false;

                var message = new TransportMessage(transportOperation.MessageId, transportOperation.Headers)
                {
                    Body = transportOperation.Body
                };

                //dispatch to transport

                if (transportOperation.Options["Operation"] != "Audit")
                {
                    DispatchMessageToTransportBehavior.InvokeNative(deliveryOptions, message);
                }
                else
                {
                    DefaultMessageAuditer.Audit(deliveryOptions as SendOptions, message);
                }
            }
        }
Exemplo n.º 3
0
        public void Audit(SendOptions sendOptions, TransportMessage message)
        {
            var context = PipelineExecutor.CurrentContext;

            OutboxMessage currentOutboxMessage;

            if (context.TryGet(out currentOutboxMessage))
            {
                message.RevertToOriginalBodyIfNeeded();

                currentOutboxMessage.TransportOperations.Add(new TransportOperation(message.Id, sendOptions.ToTransportOperationOptions(true), message.Body, message.Headers));
            }
            else
            {
                DefaultMessageAuditer.Audit(sendOptions, message);
            }
        }