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); } }
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); }