示例#1
0
 public StockActionResponse(long productId, long stockActionId, StockActionTypes stockActionType, int count)
 {
     StockActionId   = stockActionId;
     StockActionType = stockActionType;
     Count           = count;
     ProductId       = productId;
 }
示例#2
0
 private StockAction(Guid id, DateTime createdOn, string productId, StockActionTypes stockActionType, int count, string correlationId)
 {
     Id              = id;
     CreatedOn       = createdOn;
     ProductId       = productId;
     StockActionType = stockActionType;
     Count           = count;
     CorrelationId   = correlationId;
 }
示例#3
0
 public StockActionModel(long id, DateTime createdOn, long productId, StockActionTypes stockActionType, int count, string correlationId)
 {
     Id              = id;
     CreatedOn       = createdOn;
     ProductId       = productId;
     StockActionType = stockActionType;
     Count           = count;
     CorrelationId   = correlationId;
 }
示例#4
0
        public static StockAction Create(string productId, StockActionTypes stockActionType, int count, string correlationId, IStockActionUniqueChecker stockActionUniqueChecker, CancellationToken cancellationToken = default)
        {
            if (string.IsNullOrEmpty(correlationId))
            {
                throw new CorrelationIdEmptyException();
            }

            if (!stockActionUniqueChecker.CheckAsync(correlationId, cancellationToken).ConfigureAwait(false).GetAwaiter().GetResult())
            {
                throw new StockActionAlreadyExistException(correlationId, stockActionType);
            }

            StockAction             stockAction             = new StockAction(productId, stockActionType, count, correlationId);
            StockActionCreatedEvent stockActionCreatedEvent = StockActionCreatedEvent.Create(stockAction);

            stockAction.AddDomainEvent(stockActionCreatedEvent);
            return(stockAction);
        }
示例#5
0
 private StockAction(string productId, StockActionTypes stockActionType, int count, string correlationId)
     : this(Guid.NewGuid(), DateTime.UtcNow, productId, stockActionType, count, correlationId)
 {
 }
示例#6
0
 public StockActionModel(long productId, StockActionTypes stockActionType, int count, string correlationId) : this(default, DateTime.UtcNow, productId, stockActionType, count, correlationId)
 {
 }
 public StockActionAlreadyExistException(string correlationId, StockActionTypes stockActionType)
     : base($"{stockActionType} is already executed with {correlationId}")
 {
 }