public static StockSnapshot Create(string productId, int availableStock, Guid stockActionId, DateTime lastStockActionDate, IStockSnapshotUniqueChecker stockSnapshotUniqueChecker, CancellationToken cancellationToken) { if (!stockSnapshotUniqueChecker.CheckAsync(productId, cancellationToken).ConfigureAwait(false).GetAwaiter().GetResult()) { throw new StockSnapshotAlreadyExistException(productId); } StockSnapshot stockSnapshot = new StockSnapshot(productId, availableStock, stockActionId, lastStockActionDate); StockSnapshotCreatedEvent snapshotCreatedEvent = new StockSnapshotCreatedEvent(stockSnapshot); stockSnapshot.AddDomainEvent(snapshotCreatedEvent); return(stockSnapshot); }
public StockInitializedEvent_CreateStockSnapshot(IStockSnapshotUniqueChecker snapshotUniqueChecker, IStockDbContext stockDbContext) { _snapshotUniqueChecker = snapshotUniqueChecker; _stockDbContext = stockDbContext; }