public void Remove(SubscriptionToken subscriptionToken) { lock (_eventTypesWithActions) { var eventWithActions = _eventTypesWithActions.FirstOrDefault(i => i.EventType == subscriptionToken.EventType); if (eventWithActions == null) { return; } eventWithActions.Actions.Remove(subscriptionToken.ActionReference); if (eventWithActions.Actions.Count == 0) { _eventTypesWithActions.Remove(eventWithActions); } } }
public void Unsubscribe <TEventType>(SubscriptionToken subscriptionToken) where TEventType : IEvent { _eventSubscribers.Remove(subscriptionToken); }