public async Task <IActionResult> ProcesaTransferencia ([FromBody] TxRequestBE txRequestBE) { var resp = await _transactionServices.Transferir(txRequestBE); return(Ok(resp)); }
public async Task <TxResponseBE> Transferir(TxRequestBE txRequestBE) { #region Origen var origen = await(from x in _cuentasContext.Cuenta where x.IdCuenta == txRequestBE.IdCuentaOrigen select x).FirstOrDefaultAsync(); origen.Saldo -= txRequestBE.Monto; #endregion #region Operacion Transaccion tx = new Transaccion(txRequestBE); _cuentasContext.Transaccion.Add(tx); #endregion #region Destino var destino = await(from x in _cuentasContext.Cuenta where x.IdCuenta == txRequestBE.IdCuentaDestino select x).FirstOrDefaultAsync(); destino.Saldo += txRequestBE.Monto; #endregion await _cuentasContext.SaveChangesAsync(); TxResponseBE resp = new TxResponseBE(tx); return(resp); }
public Transaccion(TxRequestBE txRequestBE) { IdCuentaOrigen = txRequestBE.IdCuentaOrigen; IdCuentaDestino = txRequestBE.IdCuentaDestino; Monto = txRequestBE.Monto; FechaOperacion = DateTime.Now; }
public async Task <TxResponseBE> Transferir(TxRequestBE txRequestBE) { string url = configuration.GetValue <string>("UrlApiCliente"); string ruta = url + "transaccion/ProcesarTx"; // + codCuenta.ToString(); HttpClient client = new HttpClient(); StringContent content = new StringContent(JsonConvert.SerializeObject(txRequestBE), Encoding.UTF8, "application/json"); var response = await client.PostAsync(ruta, content); TxResponseBE rpta = await response.Content.ReadAsAsync <TxResponseBE>(); return(rpta); }
public async Task <TxResponseBE> Transferir(TxRequestBE txRequestBE) { var handler = new HttpClientHandler(); handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; var miHttpClient = new HttpClient(handler); TokenResponseDTO responseToken = await tokenAdapter.GeneraToken(); var metadata = new Metadata(); metadata.Add("Authorization", $"Bearer {responseToken.Token}"); var channel = GrpcChannel.ForAddress (configuration.GetValue <string>("UrlApiCliente"), new GrpcChannelOptions { HttpClient = miHttpClient }); BancaServiceGrpc.BancaServiceGrpcClient client = new BancaServiceGrpc.BancaServiceGrpcClient(channel); txRequest request = new txRequest() { IdCuentaDestino = txRequestBE.IdCuentaDestino, IdCuentaOrigen = txRequestBE.IdCuentaOrigen, Monto = (double)txRequestBE.Monto }; txResponse response = await client.ProcesaTransaccionAsync (request, headers : metadata); TxResponseBE txResponseBE = new TxResponseBE() { Amount = txRequestBE.Monto, Date = DateTime.Now, OperationCode = response.IdOperacion }; return(txResponseBE); }
public override async Task <txResponse> ProcesaTransaccion (txRequest request, ServerCallContext context) { logger.LogWarning("Llego a opbanca grpc"); TxRequestBE be = new TxRequestBE() { IdCuentaDestino = request.IdCuentaDestino, IdCuentaOrigen = request.IdCuentaDestino, Monto = (decimal)request.Monto }; TxResponseBE resp = await transaccionServices.Transferir(be); txResponse txRpta = new txResponse() { IdOperacion = resp.OperationCode }; return(txRpta); }
public async Task <TxResponseBE> Transferir(TxRequestBE txRequestBE) { string url = configuration.GetValue <string>("UrlApiCliente"); string ruta = url + "transaccion/ProcesarTx"; // + codCuenta.ToString(); TokenResponseDTO responseToken = await tokenAdapter.GeneraToken(); HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", responseToken.Token); StringContent content = new StringContent(JsonConvert.SerializeObject(txRequestBE), Encoding.UTF8, "application/json"); var response = await client.PostAsync(ruta, content); TxResponseBE rpta = await response.Content.ReadAsAsync <TxResponseBE>(); return(rpta); }
public async Task <IActionResult> ProcesarTx(TxRequestBE txRequestBE) { var result = await _transaccionServices.Transferir(txRequestBE); return(Ok(result)); }