コード例 #1
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
        private Task Send(object message, SendOptions options, TransportMessage incoming)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message", "You cannot send null");
            }

            var sendOptions = options ?? new SendOptions();
            LogicalMessage msg = this.factory.Create(message, sendOptions.Headers);

            return this.SendMessage(msg, sendOptions, incoming);
        }
コード例 #2
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
 private Task SendLocal(object message, TransportMessage incoming)
 {
     return this.Send(message, new SendOptions { Queue = this.readOnlyConfiguration.EndpointQueue }, incoming);
 }
コード例 #3
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
 private Task SendLocal(object message, SendOptions sendOptions, TransportMessage incoming)
 {
     sendOptions.Queue = this.readOnlyConfiguration.EndpointQueue;
     return this.Send(message, sendOptions, incoming);
 }
コード例 #4
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
 private static SendOptions CreatePostponeSendOptions(DateTime scheduledEnqueueTimeUtc, TransportMessage incoming)
 {
     var options = new SendOptions
                   {
                       CorrelationId = incoming.CorrelationId,
                       ScheduledEnqueueTimeUtc = scheduledEnqueueTimeUtc,
                       ReplyToAddress = incoming.ReplyTo
                   };
     AddCustomHeaders(options, incoming);
     return options;
 }
コード例 #5
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
 private static void AddCustomHeaders(SendOptions sendOptions, TransportMessage incoming)
 {
     foreach (var keyvalue in incoming.Headers)
     {
         if (!HeaderKeys.IsKey(keyvalue.Key))
         {
             sendOptions.Headers.Add(keyvalue.Key, keyvalue.Value);
         }
     }
 }
コード例 #6
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
            private static ReplyOptions GetOrCreateReplyOptions(TransportMessage incoming, ReplyOptions options = null)
            {
                Queue destination = incoming.ReplyTo;

                string correlationId = !string.IsNullOrEmpty(incoming.CorrelationId)
                    ? incoming.CorrelationId
                    : incoming.Id;

                if (options == null)
                {
                    return new ReplyOptions(destination, correlationId);
                }

                options.Queue = options.Queue ?? destination;
                options.CorrelationId = options.CorrelationId ?? correlationId;
                return options;
            }
コード例 #7
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
 public IncomingBusDecorator(Bus bus, IncomingPipeline incomingPipeline, TransportMessage incoming)
 {
     this.incoming = incoming;
     this.incomingPipeline = incomingPipeline;
     this.bus = bus;
 }
コード例 #8
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
 private Task OnMessageAsync(TransportMessage message)
 {
     IncomingPipeline incomingPipeline = this.incomingPipelineFactory.Create();
     return incomingPipeline.Invoke(new IncomingBusDecorator(this, incomingPipeline, message), message, this.readOnlyConfiguration);
 }
コード例 #9
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
        private Task SendMessage(LogicalMessage outgoingLogicalMessage, DeliveryOptions options, TransportMessage incoming)
        {
            if (options.ReplyToAddress == null)
            {
                options.ReplyToAddress = this.configuration.EndpointQueue;
            }

            OutgoingPipeline outgoingPipeline = this.outgoingPipelineFactory.Create();
            return outgoingPipeline.Invoke(outgoingLogicalMessage, options, this.readOnlyConfiguration, incoming);
        }
コード例 #10
0
ファイル: Bus.cs プロジェクト: modulexcite/ServiceBus
        private Task Publish(object message, PublishOptions options, TransportMessage incoming)
        {
            if (message == null)
            {
                throw new ArgumentNullException("message", "You cannot publish null");
            }

            var publishOptions = options ?? new PublishOptions();
            LogicalMessage msg = this.factory.Create(message, publishOptions.Headers);
            publishOptions.EventType = msg.MessageType;

            return this.SendMessage(msg, publishOptions, incoming);
        }