private void DoAddSubscription(Type handlerType, string queryName) { if (!HasSubscriptionsForQuery(queryName)) { _handlers.Add(queryName, new List <QuerySubscriptionInfo>()); } if (_handlers[queryName].Any()) { throw new ArgumentException($"Handler Type already registered for '{queryName}'"); } _handlers[queryName].Add(QuerySubscriptionInfo.Typed(handlerType)); }
private void DoRemoveHandler(string queryName, QuerySubscriptionInfo subsToRemove) { if (subsToRemove != null) { _handlers[queryName].Remove(subsToRemove); if (!_handlers[queryName].Any()) { _handlers.Remove(queryName); var queryType = _queryTypes.SingleOrDefault(e => e.Name == queryName); if (queryType != null) { _queryTypes.Remove(queryType); } RaiseOnQueryRemoved(queryName); } } }
private void DoAddSubscription(string queryName, Type queryType, Type returnType, Type handlerType, bool isDynamic) { if (!_handlers.ContainsKey(queryName)) { _handlers.Add(queryName, new List <QuerySubscriptionInfo>()); } if (_handlers[queryName].Any()) { throw new ArgumentException($"Handler Type already registered for '{queryName}'"); } if (isDynamic) { _handlers[queryName].Add(QuerySubscriptionInfo.Dynamic(queryName, returnType, handlerType)); } else { _handlers[queryName].Add(QuerySubscriptionInfo.Typed(queryName, queryType, returnType, handlerType)); } }