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}" }); } }
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 })); }
public async Task <ActionResult> Rollback([FromBody] RollbackPayment rollback) { var notification = await _paymentService.Rollback(rollback); return(notification.Error == null?Accepted(rollback) : Problem(notification.Error)); }