protected override void apply(Type pluginType, IConfiguredInstance instance)
        {
            var subscriberFactory = GetMessageSubscriberFactoryParameter(instance);

            if (subscriberFactory == null)
            {
                return;
            }

            var environment          = GetEnvironmentName();
            var connectionStringName = GetConnectionStringName(instance);

            var messageQueueConnectionString = GetMessageQueueConnectionString(environment, connectionStringName);

            if (string.IsNullOrEmpty(messageQueueConnectionString))
            {
                var groupFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "/EAS_Queues/";
                var factory     = new FileSystemMessageSubscriberFactory(groupFolder);

                instance.Dependencies.AddForConstructorParameter(subscriberFactory, factory);
            }
            else
            {
                var subscriptionName = TopicSubscriptionHelper.GetMessageGroupName(instance.Constructor.DeclaringType);

                var factory = new TopicSubscriberFactory(messageQueueConnectionString, subscriptionName, new NLogLogger(typeof(TopicSubscriberFactory)));

                instance.Dependencies.AddForConstructorParameter(subscriberFactory, factory);
            }
        }
コード例 #2
0
        protected override void apply(Type pluginType, IConfiguredInstance instance)
        {
            var factoryParameter = instance?.Constructor?.GetParameters().FirstOrDefault(p => p.ParameterType == typeof(IMessageSubscriberFactory));

            if (factoryParameter == null)
            {
                return;
            }

            var connectionString = GetConnectionString(instance);
            var subscriptionName = TopicSubscriptionHelper.GetMessageGroupName(instance.Constructor.DeclaringType);
            var factory          = new TopicSubscriberFactory(connectionString, subscriptionName, new NLogLogger(typeof(TopicSubscriberFactory)));

            instance.Dependencies.AddForConstructorParameter(factoryParameter, factory);
        }
        protected override void apply(Type pluginType, IConfiguredInstance instance)
        {
            var factoryParameter = instance?.Constructor?.GetParameters().FirstOrDefault(p => p.ParameterType == typeof(IMessageSubscriberFactory));

            if (factoryParameter == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(_config.MessageServiceBusConnectionString))
            {
                var groupFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), _serviceName);
                var factory     = new FileSystemMessageSubscriberFactory(groupFolder);

                instance.Dependencies.AddForConstructorParameter(factoryParameter, factory);
            }
            else
            {
                var subscriptionName = TopicSubscriptionHelper.GetMessageGroupName(instance.Constructor.DeclaringType);
                var factory          = new TopicSubscriberFactory(_config.MessageServiceBusConnectionString, subscriptionName, _logger);

                instance.Dependencies.AddForConstructorParameter(factoryParameter, factory);
            }
        }
        public void ShouldGetGroupNameIfOneExists()
        {
            var groupName = TopicSubscriptionHelper.GetMessageGroupName(new TestClassWithSubscriptionName());

            Assert.AreEqual("Test", groupName);
        }
        public void ShouldReturnClassNameIfGroupNameIsEmpty()
        {
            var groupName = TopicSubscriptionHelper.GetMessageGroupName(new TestClassWithEmptySubscriptionName());

            Assert.AreEqual(nameof(TestClassWithEmptySubscriptionName), groupName);
        }
        public void ShouldReturnClassNameIfGroupNameNotFound()
        {
            var groupName = TopicSubscriptionHelper.GetMessageGroupName <TestClassWithoutSubscriptionName>();

            Assert.AreEqual(nameof(TestClassWithoutSubscriptionName), groupName);
        }