Beispiel #1
0
 public Task <AsyncTaskResult> HandleAsync(PaymentCompletedEvent evnt)
 {
     return(_commandService.SendAsync(new ConfirmPaymentCommand(
                                          evnt.OrderId,
                                          evnt.PayInfo,
                                          true)));
 }
        public Task Handle(PaymentCompletedEvent message, IMessageHandlerContext context)
        {
            var sendDeliveryRequest = new SendDeliveryRequestCommand
            {
                CartId = message.CartId
            };

            return(context.SendLocal(sendDeliveryRequest));
        }
        public async Task Consume(ConsumeContext <PaymentCompletedEvent> context)
        {
            PaymentCompletedEvent paymentCompletedEvent = context.Message;
            long orderId = long.Parse(paymentCompletedEvent.CorrelationId);

            await _distributedLockManager.LockAsync(OrderOperationKey(orderId),
                                                    async() =>
            {
                IOrderStateMachine orderStateMachine = await _orderStateMachineFactory.BuildOrderStateMachineAsync(orderId);
                orderStateMachine.ChangePaymentStatus(PaymentStatuses.Completed);
            });
        }
Beispiel #4
0
 public Task <AsyncTaskResult> HandleAsync(PaymentCompletedEvent evnt)
 {
     return(TryUpdateRecordAsync(connection =>
     {
         return connection.UpdateAsync(new
         {
             State = (int)PaymentState.Completed,
             Version = evnt.Version
         }, new
         {
             Id = evnt.AggregateRootId,
             //Version = evnt.Version - 1
         }, ConfigSettings.PaymentTable);
     }));
 }
        public Task Handle(StartPaymentCommand message, IMessageHandlerContext context)
        {
            //TODO: acual charging logic goes here

            //randomly return negative events
            if (random.Next(0, 5) == 0)
            {
                var paymentDenied = new PaymentDeniedEvent
                {
                    CartId = message.CartId
                };
                return(context.Publish(paymentDenied));
            }

            var paymentCompleted = new PaymentCompletedEvent
            {
                CartId = message.CartId
            };

            return(context.Publish(paymentCompleted));
        }
Beispiel #6
0
 private void Handle(PaymentCompletedEvent evnt)
 {
     _state   = PaymentState.Completed;
     _payInfo = evnt.PayInfo;
 }