/// <inheritdoc /> public Task <ISubscriptionTrackingService> CreateSubscriptionTrackingService(IConfiguration configuration) { var connectionName = configuration["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 multicastSection = configuration.GetSection("multicast"); var multicastFactory = new MulticastSubscriptionTrackingServiceFactory(); return(multicastFactory.InitSubscriptionTrackingService(multicastSection, sqlSubscriptionTrackingService)); }
/// <inheritdoc /> /// <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( IConfiguration configuration) { var inMemoryTrackingService = new InMemorySubscriptionTrackingService(); var multicastSection = configuration?.GetSection("multicast"); var multicastFactory = new MulticastSubscriptionTrackingServiceFactory(); return(multicastFactory.InitSubscriptionTrackingService(multicastSection, inMemoryTrackingService)); }
/// <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)); }
/// <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(IConfiguration configuration) { var path = configuration?["path"]; var fsTrackingBaseDir = GetRootedDirectory(path); var fsTrackingService = new FilesystemSubscriptionTrackingService(fsTrackingBaseDir); fsTrackingService.Init(); var multicastSection = configuration?.GetSection("multicast"); var multicastFactory = new MulticastSubscriptionTrackingServiceFactory(); return(multicastFactory.InitSubscriptionTrackingService(multicastSection, fsTrackingService)); }
/// <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)); }