Пример #1
0
 PublishContext(T message)
     : base(message)
 {
     _wasEndpointAlreadySent = DefaultEndpointSent;
     _timer      = Stopwatch.StartNew();
     _notifySend = null;
 }
Пример #2
0
        public void Publish <T>(IEnumerable <T> messages, IPublishContext context = null)
        {
            Guard.ArgumentNotNull(messages, "message");
            Guard.InstanceOfType(context, "context", typeof(ServiceBrokerContext));
            var serviceBrokerContext = (ServiceBrokerContext)context;

            // ReSharper disable once PossibleNullReferenceException
            using (var sqlConnection = new SqlConnection(serviceBrokerContext.ConnectionString))
            {
                sqlConnection.Open();

                using (var sqlTransaction = sqlConnection.BeginTransaction())
                {
                    var conversationHandle = ServiceBrokerWrapper.BeginConversation(sqlTransaction,
                                                                                    serviceBrokerContext.InitiatorService, serviceBrokerContext.TargetService,
                                                                                    serviceBrokerContext.MessageContract, false);

                    foreach (var message in messages)
                    {
                        byte[] buffer;
                        using (var stream = new MemoryStream())
                        {
                            var formatter = new BinaryFormatter();
                            formatter.Serialize(stream, message);
                            buffer = stream.GetBuffer();
                            stream.Close();
                        }
                        ServiceBrokerWrapper.Send(sqlTransaction, conversationHandle, serviceBrokerContext.MessageType,
                                                  buffer);
                    }

                    sqlTransaction.Commit();
                }
            }
        }
Пример #3
0
        public void Publish <T>(IEnumerable <T> messages, IPublishContext context = null)
        {
            Guard.ArgumentNotNull(messages, "messages");
            Guard.InstanceOfType(context, "context", typeof(RabbitMqContext));

            var rabbitMqContext = (RabbitMqContext)context;

            Debug.Assert(rabbitMqContext != null, "rabbitMqContext != null");

            var connection = _connectionManager.GetConnection(rabbitMqContext);

            //using (var connection = new ConnectionFactory().CreateConnection(rabbitMqContext.HostName))
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare(queue: rabbitMqContext.Queue,
                                     durable: rabbitMqContext.Durable,
                                     exclusive: false,
                                     autoDelete: false,
                                     arguments: null);

                foreach (var message in messages)
                {
                    channel.BasicPublish(exchange: "",
                                         routingKey: rabbitMqContext.Queue,
                                         basicProperties: GetBasicProperties(rabbitMqContext),
                                         body: GetBytes(message));
                }
            }
        }
Пример #4
0
        public void ApplyContext(IPublishContext <TRequest> context, Uri responseAddress)
        {
            context.SetRequestId(_requestId);
            context.SendResponseTo(responseAddress);
            context.SendFaultTo(responseAddress);

            _contextActions.Each(x => x(context));
        }
Пример #5
0
        PublishContext(T message, ISendContext context)
            : base(message, context)
        {
            _notifySend = context as IPublishContext;

            _wasEndpointAlreadySent = DefaultEndpointSent;
            _timer = Stopwatch.StartNew();
        }
Пример #6
0
        /// <inheritdoc />
        public async Task Handle(IPublishContext context, Func <Task> next)
        {
            var validationContext = new ValidationContext(context.Message);

            Validator.ValidateObject(context.Message, validationContext, true);

            await next();
        }
Пример #7
0
        public Task Handle(IPublishContext context, Func <Task> next)
        {
            var validationContext = new ValidationContext(context.Message);

            Validator.ValidateObject(context.Message, validationContext);

            return(next());
        }
Пример #8
0
        public void Publish <T>(T message, IPublishContext context = null)
        {
            var connectionProperties = new Hashtable
            {
                { MQC.HOST_NAME_PROPERTY, "gdcdevqamq01" },
                { MQC.PORT_PROPERTY, 1420 },
                { MQC.CHANNEL_PROPERTY, "GDC.SSL.DV1.INTERNAL" },
                {
                    MQC.TRANSPORT_PROPERTY,
                    MQC.TRANSPORT_MQSERIES_MANAGED
                }
            };

            try
            {
                var mqQMgr = new MQQueueManager("QMGR.GDCDV1", connectionProperties);
            }
            catch (MQException mqe)
            {
                return;
            }
        }
Пример #9
0
 public PublishedMessageImpl(IPublishContext <T> context)
 {
     _context = context;
 }
 public void OnException(Exception ex, IPublishContext <TMessage> context)
 {
     throw ex;
 }
Пример #11
0
 public void NotifyPublish <T>(IPublishContext <T> publishContext)
     where T : class
 {
     _published.Add(new Published <T>(publishContext));
 }
Пример #12
0
 public Published(IPublishContext <T> context)
 {
     _timestamp = Stopwatch.GetTimestamp();
     _context   = context;
 }
Пример #13
0
 public void OnPublish(IPublishContext context)
 {
     context.SetHeader(CorrelationContext.CorrelationIdName, CorrelationContext.CorrelationId.Value.ToString());
 }
Пример #14
0
 public void NotifyPublish <T>(IPublishContext <T> publishContext) where T : class
 {
     _context.NotifyPublish(publishContext);
 }
 public bool ShouldExecute(IPublishContext <TMessage> context)
 {
     return(_shouldExecute == null || _shouldExecute());
 }
Пример #16
0
 static void DefaultCallback(TScenario scenario, IPublishContext <TMessage> context)
 {
 }
 public static IPublishContext UsePublishConfiguration(this IPublishContext context, Action <IPublisherConfigurationBuilder> configuration)
 {
     context.Properties.Add(PipeKey.ConfigurationAction, configuration);
     return(context);
 }
Пример #18
0
 public void SetCommandMessageHeaders<TCommand>(CommandMessage<TCommand> message, IPublishContext<TCommand> context) where TCommand : class, ICommand
 {
     PersistCorrelationId(context, message.CorrelationId);
     PersistMessageSentTime(context, message.SentOn);
 }
Пример #19
0
 public void Publish <T>(IEnumerable <T> messages, IPublishContext context = null)
 {
     throw new NotImplementedException();
 }
 public async Task ExecuteAfterConnect(IPublishContext <TMessage> context)
 {
     await _bus.Publish(context.Message, context.Message.GetType());
 }
 public async Task ExecuteBeforeConnect(IPublishContext <TMessage> context)
 {
     await Task.FromResult(0);
 }
 void NoContext <T>(IPublishContext <T> context)
     where T : class
 {
 }
Пример #23
0
 public void SetEventMessageHeaders<TEvent>(EventMessage<TEvent> message, IPublishContext<TEvent> context) where TEvent : class, IEvent
 {
     PersistCorrelationId(context, message.CorrelationId);
     PersistMessageSentTime(context, message.SentOn);
 }