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