public override async Task Invoke(IIncomingPhysicalMessageContext context, Func <Task> next) { using (var session = await sessionProvider.Open().ConfigureAwait(false)) { context.Extensions.Set <IMySession>(session); try { await next().ConfigureAwait(false); await session.Commit().ConfigureAwait(false); } catch (Exception) { await session.Rollback().ConfigureAwait(false); throw; } } }
public override async Task Invoke(IIncomingPhysicalMessageContext context, Func <Task> next) { var tennant = context.MessageHeaders["tennant"]; using (var session = await sessionProvider.Open(tennant)) { context.Extensions.Set <IMySession>(session); try { await next(); await session.Commit(); } catch (Exception) { await session.Rollback(); throw; } } }