public void OnSubscribeTo(ISubscribeTo added) { lock (_ids) { bool wasAdded = _ids.Add(added.SubscriptionId); if (!wasAdded || _ids.Count != 1) { return; } } _subscriptionId = NewIds.NewId.NextGuid(); _endpointUri = added.EndpointUri; var add = new SubscriptionAddedMessage { SubscriptionId = _subscriptionId, EndpointUri = _endpointUri, MessageName = _messageName, CorrelationId = _correlationId, }; _log.DebugFormat("SubscribeTo: {0}, {1}", _messageName, _subscriptionId); _observer.OnSubscriptionAdded(add); }
/// <summary> /// Adds an object that subscribes to the specified event, by virtue of implementing /// the ISubscribeTo interface. /// </summary> public void AddSubscriberFor <E>(ISubscribeTo <E> subscriber) where E : IDomainEvent { if (!_subscribers.ContainsKey(typeof(E))) { _subscribers.Add(typeof(E), new List <Action <object> >()); } _subscribers[typeof(E)].Add(e => subscriber.Handle((E)e)); }
/// <summary> /// Adds an object that subscribes to the specified event, by virtue of implementing /// the ISubscribeTo interface. /// </summary> /// <typeparam name="TEvent"></typeparam> /// <param name="subscriber"></param> public void AddSubscriberFor <TEvent>(ISubscribeTo <TEvent> subscriber) { if (!_eventSubscribers.ContainsKey(typeof(TEvent))) { _eventSubscribers.Add(typeof(TEvent), new List <Action <object> >()); } _eventSubscribers[typeof(TEvent)].Add(e => subscriber.Handle((TEvent)e)); }
private void SendXEventsNSecondsApart(ISubscribeTo <LogEventData> sut, int numberOfEvents, int secondsBetweenEvents = 0) { var firstEventTime = Some.UtcTimestamp(); for (var i = 0; i < numberOfEvents; i++) { var eventTime = firstEventTime + TimeSpan.FromSeconds(i * secondsBetweenEvents); var @event = Some.LogEvent(timestamp: eventTime); sut.On(@event); } }
public void AddSubscriberFor <TEvent>(ISubscribeTo <TEvent> subscriber) { if (!_eventSubscribers.ContainsKey(typeof(TEvent))) { _eventSubscribers.Add(typeof(TEvent), new List <Action <object> >()); } _eventSubscribers[typeof(TEvent)].Add(e => subscriber.Handle((TEvent)e)); _logger.Debug( $"Registered event subscriber '{subscriber.GetType().Name}' for event type '{typeof(TEvent).Name}'"); }
/// <summary> /// Adds an object that subscribes to the specified event, by virtue of implementing /// the ISubscribeTo interface. /// </summary> /// <typeparam name="TEvent"></typeparam> /// <param name="subscriber"></param> public void AddSubscriberFor <TEvent>(ISubscribeTo <TEvent> subscriber) where TEvent : Event { List <Action <Event> > subscribers; if (!_eventSubscribers.TryGetValue(typeof(TEvent), out subscribers)) { subscribers = new List <Action <Event> >(); _eventSubscribers.Add(typeof(TEvent), subscribers); } subscribers.Add(evt => subscriber.Handle((TEvent)evt)); }
/// <summary> /// Adds an object that subscribes to the specified event, by virtue of implementing /// the ISubscribeTo interface. /// </summary> /// <typeparam name="TEvent"></typeparam> /// <param name="subscriber"></param> public void AddSubscriberFor <TEvent>(ISubscribeTo <TEvent> subscriber) where TEvent : IEvent { List <Action <IEvent> > callbacks; if (!eventSubscribers.TryGetValue(typeof(TEvent), out callbacks)) { eventSubscribers.Add(typeof(TEvent), callbacks = new List <Action <IEvent> >()); } callbacks.Add(e => subscriber.Handle((TEvent)e)); }
public void OnSubscribeTo(ISubscribeTo message) { var key = new SubscriptionKey(message.MessageName, message.CorrelationId); BusSubscription subscription = _subscriptions.Get(key); if (_log.IsDebugEnabled) { _log.DebugFormat("SubscribeTo: {0}, {1}", message.MessageName, message.SubscriptionId); } subscription.OnSubscribeTo(message); }
private void SendXEventsNSecondsApart(ISubscribeTo<LogEventData> sut, int numberOfEvents, int secondsBetweenEvents = 0) { var firstEventTime = Some.UtcTimestamp(); for (var i = 0; i < numberOfEvents; i++) { var eventTime = firstEventTime + TimeSpan.FromSeconds(i * secondsBetweenEvents); var @event = Some.LogEvent(timestamp: eventTime); sut.On(@event); } }