Represents a request to publish a message
        public override bool Include(PublishRequest request)
        {
            if (request.Message == null) return false;

            if (!Inherit)
            {
                return _messageTypes.Contains(request.Message.GetType());
            }
            else
            {
                Type requestType = request.Message.GetType();
                foreach (Type t in _messageTypes)
                {
                    if (t.IsAssignableFrom(requestType))
                    {
                        return true;
                    }
                }
                return false;
            }
        }
Example #2
0
        public override bool Include(PublishRequest request)
        {
            if (request.Message == null)
            {
                return(false);
            }

            if (!Inherit)
            {
                return(_messageTypes.Contains(request.Message.GetType()));
            }
            else
            {
                Type requestType = request.Message.GetType();
                foreach (Type t in _messageTypes)
                {
                    if (t.IsAssignableFrom(requestType))
                    {
                        return(true);
                    }
                }
                return(false);
            }
        }
 public override bool Include(PublishRequest request)
 {
     return _pred(request);
 }
Example #4
0
 public override bool Include(PublishRequest request)
 {
     return(_pred(request));
 }
 public static PublishRequest Copy(PublishRequest original, params KeyValuePair<MessageDeliveryContextKey, object>[] additionalContext)
 {
     Dictionary<MessageDeliveryContextKey, object> editableContext = original.Context.ToDictionary();
     foreach (var c in additionalContext)
     {
         editableContext.Add(c.Key, c.Value);
     }
     return new PublishRequest(original.ContractType, original.Action, original.Message, new MessageDeliveryContext(editableContext));
 }
 /// <summary>
 /// Determine whether a message should be included or skipped.
 /// </summary>
 /// <param name="request"></param>
 /// <returns>true if the message should be included, false if the message should be skipped.</returns>
 public abstract bool Include(PublishRequest request);
        void deliverToSubscriptionEndpoint(TimeSpan timeout, PublishRequest publishRequest)
        {
            SubscriptionEndpoint se = _subscriptionEndpoint;

            publishRequest = PublishRequest.Copy(publishRequest, new KeyValuePair<MessageDeliveryContextKey, object>(MessageDelivery.PublishRequestId, publishRequest.PublishRequestId));

            using (TransactionScope ts = new TransactionScope())
            {
                MessageDelivery md = new MessageDelivery(Guid.NewGuid().ToString(), se.Id, publishRequest.ContractType, publishRequest.Action, publishRequest.Message, MaxRetries, 0, null, publishRequest.Context, DateTime.Now + timeout);
                DeliveryCore deliveryCore = ServiceLocator.GetInstance<DeliveryCore>();
                deliveryCore.Deliver(md);
                ts.Complete();
            }
        }
        public MessageDelivery[] PublishTwoWay(PublishRequest publishRequest, TimeSpan timeout)
        {
            CorrelatorAsyncResult result = null;

            string correlationId = GetResponseCorrelationId(publishRequest);

            using (TransactionScope ts = new TransactionScope())
            {
                result = (CorrelatorAsyncResult)_correlator.BeginWaitForReply(correlationId, null, null);
                deliverToSubscriptionEndpoint(timeout, publishRequest);
                ts.Complete();
            }

            _correlator.EndWaitForReply(result);
            return result.Results.ToArray();
        }
 public override bool Include(PublishRequest request)
 {
     return _actions.Contains("*") ||  _actions.Contains(request.Action);
 }
 public void PublishOneWay(PublishRequest publishRequest)
 {
     deliverToSubscriptionEndpoint(_oneWayTimeout, publishRequest);
 }
 protected string GetResponseCorrelationId(PublishRequest request)
 {
     return(request.PublishRequestId.ToString());
 }
 public void PublishOneWay(PublishRequest publishRequest)
 {
     deliverToSubscriptionEndpoint(_oneWayTimeout, publishRequest);
 }
 public override bool Include(PublishRequest request)
 {
     return(base.Include(request));
 }
Example #14
0
 public override bool Include(PublishRequest request)
 {
     return(_actions.Contains("*") || _actions.Contains(request.Action));
 }
 protected string GetResponseCorrelationId(PublishRequest request)
 {
     return request.PublishRequestId.ToString();
 }
 public override bool Include(PublishRequest request)
 {
     return base.Include(request);
 }
Example #17
0
 /// <summary>
 /// Determine whether a message should be included or skipped.
 /// </summary>
 /// <param name="request"></param>
 /// <returns>true if the message should be included, false if the message should be skipped.</returns>
 public abstract bool Include(PublishRequest request);