public WebAppService(WebAppSettings settings) { var viewStore = new CosmosStore(settings.CosmosEndpoint, settings.CosmosAuthKey, settings.DatabaseId, settings.ViewCollectionId); var stationDetailHandler = new StationDetailHandler(viewStore); var stationListHandler = new StationListHandler(viewStore); var publisher = new LocalPublisher(); publisher.RegisterHandler <StationCreated>(stationDetailHandler.Handle); publisher.RegisterHandler <StationRenamed>(stationListHandler.Handle); var stationRepository = new CosmosEventRepository <Station>(settings.CosmosEndpoint, settings.CosmosAuthKey, settings.DatabaseId, settings.EventCollectionId, publisher); var stationCommandHandlers = new StationHandlers(stationRepository); var bus = new LocalBus(); bus.RegisterHandler <CreateStation>(stationCommandHandlers.Handle); bus.RegisterHandler <RenameStation>(stationCommandHandlers.Handle); Bus = bus; Publisher = publisher; ViewFacade = new ViewFacade(viewStore); }
public async Task PublishAsync(EventPublishData data, PublishPreferences preferences) { await LocalPublisher.PublishAsync(data, default); await ExternalPublisher.PublishAsync(data, new PublishPreferences { SkipLocalSubscribers = true }); }