public HumanInterfaceConnector(IApplicationStateStore <TPartition> applicationStateStore, IEnumerable <ISideEffectsHandler> sideEffectsHandlers, IMessageSession rootMessageSession, IDispatchMessages dispatcher, ITransactionInProgressStore transactionInProgressStore, IMessageStore messageStore) { this.applicationStateStore = applicationStateStore; this.rootMessageSession = rootMessageSession; this.transactionInProgressStore = transactionInProgressStore; this.messageStore = messageStore; var allHandlers = sideEffectsHandlers.Concat(new ISideEffectsHandler[] { new WebMessagingWithClaimCheckSideEffectsHandler(messageStore, dispatcher), new TransactionInProgressSideEffectHandler(transactionInProgressStore), }); processor = new ExactlyOnceProcessor <object>(allHandlers.ToArray(), new NServiceBusDebugLogger()); }
public static IHostBuilder UseAtomicCommitMessageSession <T>(this IHostBuilder hostBuilder, IApplicationStateStore <T> applicationStateContainer, ITransactionInProgressStore transactionInProgressStore, IMessageStore messageStore) { hostBuilder.ConfigureServices((ctx, serviceCollection) => { serviceCollection.AddSingleton <IHumanInterfaceConnector <T> >(serviceProvider => { var dispatcher = serviceProvider.GetService <IDispatchMessages>(); var rootMessageSession = serviceProvider.GetService <IMessageSession>(); var connector = new HumanInterfaceConnector <T>(applicationStateContainer, new ISideEffectsHandler[0], rootMessageSession, dispatcher, transactionInProgressStore, messageStore); return(connector); }); }); return(hostBuilder); }
public TransactionInProgressSideEffectHandler(ITransactionInProgressStore transactionInProgressStore) { this.transactionInProgressStore = transactionInProgressStore; }