public async Task HandleAsync(SellOrderFinishedEvent message)
        {
            var orderProcessManager = await _processManagerRepository.FindAsync(message.AggregateId);

            orderProcessManager.When(message);

            await _processManagerRepository.Save(orderProcessManager);
        }
Exemple #2
0
        public void When(SellOrderFinishedEvent message)
        {
            switch (State)
            {
            case SellOrderProcessManagerState.WalletToppedUp:
                State = SellOrderProcessManagerState.OrderFinished;
                break;

            // idempotence - same message sent twice
            case SellOrderProcessManagerState.OrderFinished:
                break;

            default:
                throw new StocqresException("Invalid state for this message");
            }
        }
Exemple #3
0
 private void Apply(SellOrderFinishedEvent @event)
 {
     State = OrderState.Finished;
 }
Exemple #4
0
 public async Task HandleAsync(SellOrderFinishedEvent @event)
 {
     await _projectionWriter.UpdateAsync <SellOrderProjection>(@event.AggregateId,
                                                               e => { e.State = OrderState.Finished; });
 }