Beispiel #1
0
        public IServiceBusManager SubscribeCommand <T>(string serviceNamespace = null) where T : ICommand
        {
            var handler = _handlerFactory.ResolveCommandHandler <T>();

            if (handler is null)
            {
                throw new InvalidOperationException("Please register the command handler for: " + typeof(T).Name);
            }
            var serviceFrom = _serviceSettings.Name;
            var queue       = _serviceBusQueueFactory.CreateServiceBusQueue();
            var name        = $"{serviceFrom}/{typeof(T).Name}";

            queue.DeclareQueue(name);
            queue.Bind(_serviceSettings.Name, $"{serviceFrom}.{typeof(T).Name}");
            _serviceBusMessageSubscriber.Subscribe <T>(name, async(message, info) => await handler.HandleAsync(message, info));
            return(this);
        }