Esempio n. 1
0
 public async Task HandleAsync(CompanyChargedEvent @event)
 {
     await _projectionWriter.UpdateAsync <CompanyProjection>(@event.AggregateId, projection =>
     {
         projection.StockQuantity = @event.StockQuantity;
     });
 }
        public async Task HandleAsync(CompanyChargedEvent message)
        {
            var orderProcessManager = await _processManagerRepository.FindAsync(message.OrderId);

            try
            {
                orderProcessManager.When(message);
            }
            catch (StocqresException e)
            {
                orderProcessManager.When(new CompanyChargeFailedEvent(message.OrderId, e.Message));
            }

            await _processManagerRepository.Save(orderProcessManager);
        }
Esempio n. 3
0
        public void When(CompanyChargedEvent message)
        {
            switch (State)
            {
            case BuyOrderProcessManagerState.InvestorWalletCharged:
                State         = BuyOrderProcessManagerState.CompanyCharged;
                StockName     = message.StockName;
                StockCode     = message.StockCode;
                StockQuantity = message.StockQuantity;
                StockUnit     = message.StockUnit;
                ProcessCommand(new AddStockToWalletCommand(WalletId, AggregateId, CompanyId, message.StockName,
                                                           message.StockCode, message.StockUnit, message.StockQuantity));
                break;

            case BuyOrderProcessManagerState.StockAddedToWallet:
                break;

            default:
                throw new StocqresException("Invalid state for this message");
            }
        }
Esempio n. 4
0
 public void Apply(CompanyChargedEvent @event)
 {
     Stock.Quantity -= @event.StockQuantity;
 }