Beispiel #1
0
        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));
            }
        }