protected override void OnBuildingPipelines(PipelinesBuilder pipelinesBuilder) { pipelinesBuilder .Event <LightBulb, LightBulbPowerStatusChangedEventArgs>((source, h) => source.PowerStatusChanged += h) .IsWatched() .ThenIsQueuedTo(AfterSaveChangesQueueName) .ThenIsSentToAllAzureSignalRUsers(); }
protected override void OnBuildingPipelines(PipelinesBuilder pipelinesBuilder) { pipelinesBuilder .Event <ProductSubscription, ProductSubscriptionCancelledEventArgs>((source, h) => source.Cancelled += h) .IsWatched() // Publishing happens when the ProcessQueuedEventsAsync() method is called // by the override of DbContext.SaveChangesAsync(). .ThenIsQueuedTo(AfterSaveChangesQueueName) .ThenIsPublishedToGlobalSubscriptions(); }
protected override void OnBuildingPipelines(PipelinesBuilder pipelinesBuilder) { pipelinesBuilder .Event <Contract, ContractTerminatedEventArgs>((source, h) => source.Terminated += h) .IsWatched() // Publishing happens when the ProcessQueuedEventsAsync() method is called // by the override of DbContext.SaveChangesAsync(). .ThenIsQueuedTo(AfterSaveChangesQueueName) // Subscribers can now subscribe to ContractEvents using async event handlers. .ThenIsProjected( source => new ContractEvents { Id = source.Id }, args => new ContractEvents.ContractTerminatedEventArgs { Reason = args.Reason }, (source, h) => source.Terminated += h ) .ThenIsPublishedToGlobalSubscriptions(); }