public async Task HandleAsync(StockToWalletAddedEvent message) { var orderProcessManager = await _processManagerRepository.FindAsync(message.OrderId); orderProcessManager.When(message); await _processManagerRepository.Save(orderProcessManager); }
private void Apply(StockToWalletAddedEvent @event) { var existingStock = StockList.SingleOrDefault(s => s.Code == @event.Code); if (existingStock != null) { existingStock.Quantity += @event.Quantity; } else { StockList.Add(new Stock(@event.CompanyId, @event.Name, @event.Code, @event.Unit, @event.Quantity)); } }
public void When(StockToWalletAddedEvent message) { switch (State) { case BuyOrderProcessManagerState.CompanyCharged: State = BuyOrderProcessManagerState.OrderCompleted; ProcessCommand(new FinishBuyOrderCommand(AggregateId)); break; default: throw new StocqresException("Invalid state for this message"); } }