Exemple #1
0
        public async Task <Notification <RollbackPayment> > Rollback(RollbackPayment rollback)
        {
            _logger.LogInformation("Receiving rollback to payment ID {}, Reason {}", rollback.IdPayment, rollback.Reason);
            try
            {
                await _producerRollback.ProduceAsync(_configuration["Kafka:TopicRollback"], new Message <string, RollbackPayment>()
                {
                    Key   = rollback.IdPayment,
                    Value = rollback
                });

                return(new Notification <RollbackPayment>
                {
                    Data = rollback
                });
            }
            catch (ProduceException <string, RollbackPayment> e)
            {
                _logger.LogError(e, "Can't produce to topic {}", _configuration["Kafka:TopicRollback"]);
                return(new Notification <RollbackPayment>
                {
                    Error = $"Can't produce to topic {_configuration["Kafka:TopicRollback"]}. {e.Message}"
                });
            }
        }
Exemple #2
0
 public Task <Notification <RollbackPayment> > ProcessRollback(RollbackPayment rollback)
 {
     _logger.LogInformation("Processing rollback payment ID {}, Reason {}", rollback.IdPayment, rollback.Reason);
     return(Task.FromResult(new Notification <RollbackPayment>
     {
         Data = rollback
     }));
 }
Exemple #3
0
        public async Task <ActionResult> Rollback([FromBody] RollbackPayment rollback)
        {
            var notification = await _paymentService.Rollback(rollback);

            return(notification.Error == null?Accepted(rollback) : Problem(notification.Error));
        }