Ejemplo n.º 1
0
        public ResponseDTO GetToken(long dni, long token)
        {
            RespuestaTokenDTO res  = new RespuestaTokenDTO();
            Hashtable         data = _service.Get(string.Format("tokenotp/api/token-otps/{0}/dni/{1}", Convert.ToString(token).PadLeft(6, '0'), dni));

            return(Mapper.MapResponse(res, data));
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            string                  salida     = string.Empty;
            long                    terminalID = int.Parse(eCatConfig.GetValue("TerminalID"));
            ResponseDTO             transactionaCoreResponse = new ResponseDTO();
            BusinessActivityService _service = new BusinessActivityService(Convert.ToString(terminalID), ref transactionaCoreResponse);

            Console.WriteLine("\n");
            if (!_service.Available())
            {
                Console.WriteLine("Servicio no disponible.");
                Console.WriteLine("-> Verificar la configuración en EmuladorCajero.exe.Config");
                Console.ReadLine();
                return;
            }
            while (!salida.Equals("exit"))
            {
                int    dni;
                double saldoInicial = -1;
                double saldoPostDeb = -1;
                double saldoPostRev = -1;
                Console.Write("-> Ingrese DNI: ");
                while (!int.TryParse(Console.ReadLine(), out dni))
                {
                    Console.Write("Ingrese un DNI válido: ");
                }

                Console.Write("-> Ingrese Token: ");
                int token;
                while (!int.TryParse(Console.ReadLine(), out token))
                {
                    Console.Write("Ingrese un token numérico: ");
                }


                ResponseDTO response = _service.GetToken(dni, token);
                if (!response.status)
                {
                    Console.WriteLine(string.Format("{0} [{1}]", response.description, response.message));
                    Console.WriteLine("-> Tipee \"exit\" para salir, o cualquier otro caracter para continuar...");
                    salida = Console.ReadLine();
                    continue;
                }
                RespuestaTokenDTO respuestaToken = (RespuestaTokenDTO)response.responseData;
                Console.WriteLine("");
                Console.WriteLine("Usuario: " + respuestaToken.clienteDTO.alias);
                foreach (CuentaDTO cuenta in respuestaToken.cuentas)
                {
                    Console.WriteLine("Cuenta: " + cuenta.numero);
                    string tipoDeCuenta = string.Empty;
                    switch (cuenta.tipoCuentaId)
                    {
                    case 19:
                        tipoDeCuenta = "Pesos";
                        break;

                    case 20:
                        tipoDeCuenta = "Temporal";
                        break;

                    case 46:
                        tipoDeCuenta = "Cuenta Prestamos";
                        break;

                    default:
                        tipoDeCuenta = cuenta.tipoCuentaId.ToString();
                        break;
                    }

                    Console.WriteLine("Tipo de cuenta: " + tipoDeCuenta);
                    Console.WriteLine("Saldo total: " + cuenta.saldo);
                    saldoInicial = (double)cuenta.saldo;
                }
                Console.WriteLine("Saldo del token: " + respuestaToken.tokenCheckDTO.saldoToken);
                Console.WriteLine("Estado del token: " + respuestaToken.tokenCheckDTO.respuesta);
                Console.WriteLine("\n");
                if (respuestaToken.tokenCheckDTO.estadoToken.Equals("USADO"))
                {
                    Console.WriteLine("-> Tipee \"exit\" para salir, o cualquier otro caracter para continuar...");
                    salida = Console.ReadLine();
                    continue;
                }
                Console.Write("-> Ingrese el importe que desea extraer: ");
                int importe;
                while (!int.TryParse(Console.ReadLine(), out importe))
                {
                    Console.Write("Sólo números: ");
                }
                TransactionDTO debitDTO = new TransactionDTO()
                {
                    dniOrigen  = Convert.ToString(dni),
                    dniDestino = Convert.ToString(dni),
                    terminal   = Convert.ToString(terminalID),
                    importe    = importe,
                    idUsuario  = respuestaToken.tokenCheckDTO.idUsuario,
                    tokenId    = respuestaToken.tokenCheckDTO.tokenId
                };
                ResponseDTO responseDebito = _service.Debit(debitDTO);
                if (responseDebito.status)
                {
                    double costoOperacion = 0;
                    List <ResponseTransactionDTO> resList = new List <ResponseTransactionDTO>((IEnumerable <ResponseTransactionDTO>)responseDebito.responseData);
                    long idTransaccion = (long)resList[0].id;
                    foreach (ResponseTransactionDTO res in resList)
                    {
                        ResponseDTO   responseMovimiento = _service.GetMovimiento(res.id);
                        MovimientoDTO mov = (MovimientoDTO)responseMovimiento.responseData;
                        Console.WriteLine("\n");
                        Console.WriteLine(responseDebito.description);

                        DateTime fecha = Convert.ToDateTime(res.fecha);
                        Console.WriteLine("\nRedATM");
                        Console.WriteLine("Fecha: " + fecha.Date.ToShortDateString());
                        Console.WriteLine("Hora: " + fecha.TimeOfDay);
                        Console.WriteLine("Terminal: " + res.terminal);
                        //Console.WriteLine("Número de cuenta: " + );
                        Console.WriteLine("Número de transacción: " + res.codigo);
                        Console.WriteLine("Transacción: " + res.detalle);
                        Console.WriteLine("Importe: $" + (mov.importeOrigen - mov.transaccion.costoOperacion).ToString());;
                        Console.WriteLine("Costo de la transacción: $" + mov.transaccion.costoOperacion.ToString());
                        Console.WriteLine("Su saldo es (S.E.U.O): $" + mov.saldo);
                        costoOperacion += mov.transaccion.costoOperacion;
                        saldoPostDeb    = mov.saldo;
                        Console.WriteLine("\n");
                    }
                    Console.WriteLine("¿Desea simular una reversa?");
                    Console.Write("-> Tipee \"yes\" para confirmar, o cualquier otro caracter para continuar: ");
                    if (Console.ReadLine().Equals("yes"))
                    {
                        TransactionDTO creditDTO = new TransactionDTO()
                        {
                            dniOrigen  = Convert.ToString(dni),
                            dniDestino = Convert.ToString(dni),
                            terminal   = Convert.ToString(terminalID),
                            importe    = importe,
                            comision   = costoOperacion,
                            idUsuario  = respuestaToken.tokenCheckDTO.idUsuario,
                            tokenId    = respuestaToken.tokenCheckDTO.tokenId,
                            idAsociadoALaTransaccion = idTransaccion
                        };
                        ResponseDTO responseCredito = _service.Debit(creditDTO, true);
                        if (responseCredito.status)
                        {
                            List <ResponseTransactionDTO> resReversaList = new List <ResponseTransactionDTO>((IEnumerable <ResponseTransactionDTO>)responseCredito.responseData);
                            foreach (ResponseTransactionDTO resReversa in resReversaList)
                            {
                                ResponseDTO   responseMovimientoReversa = _service.GetMovimiento(resReversa.id);
                                MovimientoDTO movReversa = (MovimientoDTO)responseMovimientoReversa.responseData;
                                Console.WriteLine("\n");
                                Console.WriteLine("Reversa generada correctamente");
                                Console.WriteLine(responseCredito.description);
                                DateTime fechaReversa = Convert.ToDateTime(resReversa.fecha);
                                Console.WriteLine("\nRedATM REVERSA");
                                Console.WriteLine("Fecha: " + fechaReversa.Date.ToShortDateString());
                                Console.WriteLine("Hora: " + fechaReversa.TimeOfDay);
                                Console.WriteLine("Terminal: " + resReversa.terminal);
                                //Console.WriteLine("Número de cuenta: " + );
                                Console.WriteLine("Número de transacción: " + resReversa.codigo);
                                Console.WriteLine("Transacción: " + resReversa.detalle);
                                Console.WriteLine("Importe: $" + (movReversa.importeOrigen).ToString());;
                                Console.WriteLine("Costo de la transacción: $" + movReversa.transaccion.costoOperacion.ToString());
                                Console.WriteLine("Su saldo es (S.E.U.O): $" + movReversa.saldo);
                                Console.WriteLine("\n");
                                saldoPostRev = movReversa.saldo;
                            }
                        }
                        else
                        {
                            Console.WriteLine(string.Format("{0} [{1}]\n", responseCredito.description, responseCredito.message));
                        }
                    }
                }
                else
                {
                    Console.WriteLine(string.Format("{0} [{1}]", responseDebito.description, responseDebito.message));
                    Console.WriteLine("-> Tipee \"exit\" para salir, o cualquier otro caracter para continuar...");
                    salida = Console.ReadLine();
                    continue;
                }
                if (saldoPostDeb >= 0)
                {
                    Console.WriteLine("\nSaldo inicial:      " + saldoInicial.ToString());
                    Console.WriteLine("Saldo post-debito:  " + saldoPostDeb.ToString());
                    if (saldoPostRev >= 0)
                    {
                        Console.WriteLine("Saldo post-reversa: " + saldoPostRev.ToString() + "\n");
                    }
                }
                Console.WriteLine("-> Tipee \"exit\" para salir, o cualquier otro caracter para continuar...");
                salida = Console.ReadLine();
                if (!salida.Equals("exit"))
                {
                    Console.WriteLine("--------------------------------------------------------------------------\n");
                }
            }
        }