public static UnitOfWork <TIdentifier, TEventBase> GetUnitOfWork <TIdentifier, TEventBase>(this CommandHandlingContext context) where TIdentifier : IEquatable <TIdentifier> => context.Get <UnitOfWork <TIdentifier, TEventBase> >(UnitOfWorkKey);
public static UnitOfWork <TIdentifier, TEventBase> CreateUnitOfWork <TIdentifier, TEventBase>(this CommandHandlingContext context) where TIdentifier : IEquatable <TIdentifier> { lock (context) { if (context.GetUnitOfWork <TIdentifier, TEventBase>() != null) { throw new InvalidOperationException("Unit of work already created for this context, make sure CommandHandlingContext is registered as scoped service"); } var unitOfWork = new UnitOfWork <TIdentifier, TEventBase>(); context.Set(UnitOfWorkKey, unitOfWork); return(unitOfWork); } }