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) { 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); }
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 override bool Include(PublishRequest request) { return(base.Include(request)); }
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); }