Ejemplo n.º 1
0
        public async Task <IActionResult> ProcesaTransferencia
            ([FromBody] TxRequestBE txRequestBE)
        {
            var resp = await _transactionServices.Transferir(txRequestBE);

            return(Ok(resp));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 public Transaccion(TxRequestBE txRequestBE)
 {
     IdCuentaOrigen  = txRequestBE.IdCuentaOrigen;
     IdCuentaDestino = txRequestBE.IdCuentaDestino;
     Monto           = txRequestBE.Monto;
     FechaOperacion  = DateTime.Now;
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> ProcesarTx(TxRequestBE txRequestBE)
        {
            var result = await _transaccionServices.Transferir(txRequestBE);

            return(Ok(result));
        }