public static Task <ISubscriptionTrackingService> InitSubscriptionTrackingService( SubscriptionTrackingElement config) { var factory = new SubscriptionTrackingServiceFactory(); return(factory.InitSubscriptionTrackingService(config)); }
/// <inheritdoc /> public Task <ISubscriptionTrackingService> CreateSubscriptionTrackingService( SubscriptionTrackingElement configuration) { var connectionName = configuration.GetString("connectionName"); if (string.IsNullOrWhiteSpace(connectionName)) { throw new ConfigurationErrorsException( "Attribute 'connectionName' is required for SQL subscription tracking service"); } var connectionStringSettings = ConfigurationManager.ConnectionStrings[connectionName]; if (connectionStringSettings == null) { throw new ConfigurationErrorsException($"Connection string settings \"{connectionName}\" not found"); } var sqlSubscriptionTrackingService = new SQLSubscriptionTrackingService(connectionStringSettings); sqlSubscriptionTrackingService.Init(); var multicast = configuration.Multicast; var multicastFactory = new MulticastSubscriptionTrackingServiceFactory(); return(multicastFactory.InitSubscriptionTrackingService(multicast, sqlSubscriptionTrackingService)); }
public FilesystemServicesProviderSubscriptionTrackingServiceTests(FilesystemFixture fixture) { #if NETCOREAPP2_0 Configuration = new ConfigurationBuilder() .AddInMemoryCollection() .Build(); #endif Path = fixture.BaseDirectory; }
/// <summary> /// Returns an in-memory subscription tracking service /// </summary> /// <param name="configuration">The subscription tracking configuration element</param> /// <returns>Returns an in-memory subscription tracking service</returns> public Task <ISubscriptionTrackingService> CreateSubscriptionTrackingService( SubscriptionTrackingElement configuration) { var inMemoryTrackingService = new InMemorySubscriptionTrackingService(); var multicast = configuration.Multicast; var multicastFactory = new MulticastSubscriptionTrackingServiceFactory(); return(multicastFactory.InitSubscriptionTrackingService(multicast, inMemoryTrackingService)); }
public MongoDBServicesProviderSubscriptionTrackingServiceTests(MongoDBFixture fixture) { #if NETCOREAPP2_0 Configuration = new ConfigurationBuilder() .AddInMemoryCollection() .Build(); #endif ConnectionStringSettings = fixture.ConnectionStringSettings; ConfigureAttribute("connectionName", fixture.ConnectionStringSettings.Name); }
/// <inheritdoc /> /// <summary> /// Creates an initializes a <see cref="T:Platibus.ISubscriptionTrackingService" /> /// based on the provided <paramref name="configuration" />. /// </summary> /// <param name="configuration">The journaling configuration /// element.</param> /// <returns>Returns a task whose result is an initialized /// <see cref="T:Platibus.ISubscriptionTrackingService" />.</returns> public Task <ISubscriptionTrackingService> CreateSubscriptionTrackingService( SubscriptionTrackingElement configuration) { var path = configuration.GetString("path"); var fsTrackingBaseDir = GetRootedDirectory(path); var fsTrackingService = new FilesystemSubscriptionTrackingService(fsTrackingBaseDir); fsTrackingService.Init(); var multicast = configuration.Multicast; var multicastFactory = new MulticastSubscriptionTrackingServiceFactory(); return(multicastFactory.InitSubscriptionTrackingService(multicast, fsTrackingService)); }
/// <inheritdoc /> public Task <ISubscriptionTrackingService> CreateSubscriptionTrackingService(SubscriptionTrackingElement configuration) { var connectionName = configuration.GetString("connectionName"); if (string.IsNullOrWhiteSpace(connectionName)) { throw new ConfigurationErrorsException( "Attribute 'connectionName' is required for MongoDB subscription tracking service"); } var connectionStringSettings = ConfigurationManager.ConnectionStrings[connectionName]; if (connectionStringSettings == null) { throw new ConfigurationErrorsException("Connection string settings \"" + connectionName + "\" not found"); } var databaseName = configuration.GetString("database"); var collectionName = configuration.GetString("collection"); var database = MongoDBHelper.Connect(connectionStringSettings, databaseName); var subscriptionTrackingOptions = new MongoDBSubscriptionTrackingOptions(database) { CollectionName = collectionName }; var subscriptionTrackingService = new MongoDBSubscriptionTrackingService(subscriptionTrackingOptions); var multicast = configuration.Multicast; if (multicast == null || !multicast.Enabled) { return(Task.FromResult <ISubscriptionTrackingService>(subscriptionTrackingService)); } var multicastTrackingService = new MulticastSubscriptionTrackingService( subscriptionTrackingService, multicast.Address, multicast.Port); return(Task.FromResult <ISubscriptionTrackingService>(multicastTrackingService)); }
/// <summary> /// Initializes a subscription tracking service based on the supplied /// <paramref name="configuration"/> /// </summary> /// <param name="configuration">The subscription tracking configuration</param> /// <returns>Returns a task whose result is the initialized subscription tracking service</returns> public async Task <ISubscriptionTrackingService> InitSubscriptionTrackingService(SubscriptionTrackingElement configuration) { var myConfig = configuration ?? new SubscriptionTrackingElement(); var provider = await GetProvider(myConfig.Provider); await _diagnosticService.EmitAsync( new DiagnosticEventBuilder(this, DiagnosticEventType.ComponentInitialization) { Detail = "Initializing subscription tracking service" }.Build()); var subscriptionTrackingService = await provider.CreateSubscriptionTrackingService(myConfig); await _diagnosticService.EmitAsync( new DiagnosticEventBuilder(this, DiagnosticEventType.ComponentInitialization) { Detail = $"Message queueing service {subscriptionTrackingService.GetType().FullName} initialized" }.Build()); return(subscriptionTrackingService); }