private static bool Deposito(Transacciones newTrans) { int n_AccountDest; //Variable utilizada para guardar el número de cuenta a la que se depositará decimal n_Monto; //Variable que almacena el monto a depositar. Deposito: Console.WriteLine("Ingresa el numero de cuenta a la que deseas depositar"); n_AccountDest = Convert.ToInt32(Console.ReadLine()); //Se guarda el número de cuenta destino. using (var db = new ATMdb()) { try { Usuarios us = db.Usuarios.Single(st => st.noCuenta == n_AccountDest); }//Se hace un select en la tabla Usuarios con e catch (Exception) { Console.Clear(); Console.WriteLine("Cuenta no Encontrada!"); goto Deposito; } } using (var db = new ATMdb()) { Monto: Console.WriteLine("Introduce la cantidad a depositar, para cancelar introduzca 0"); n_Monto = Convert.ToInt32(Console.ReadLine()); //n_Monto guarda el monto a depositar. if (n_Monto == 0) ///Si n_Monto es 0... (Cancelar Operacion) { Console.Clear(); return(false); } n_Monto /= 100; //Se divide n_Monto entre 100 para contemplar los centavos. if (!DepositWaitTime(n_Monto)) //Verifica que el usuario introduzca el dinero en en plazo de 2min. { goto Deposito; //Si excedió el tiempo se vuelve a iniciar el proceso de depósito. } db.Transacciones.Add(newTrans); //Inserta el registro de la tabla transaccion. int affected = db.SaveChanges(); //Guarda los cambios en la bd. int maxFolio = db.Transacciones.Max(p => p.Folio); //maxFolio adquiere el valor del folio que se acaba de insertar. var newDeposito = new Deposito { Folio = maxFolio, //Deposito.Folio = maxFolio cuentaDest = n_AccountDest, //Deposito.cuentaDest = n_AccountDest monto = n_Monto //Deposito.monto = n_Monto }; db.Deposito.Add(newDeposito); //Se inserta el registro en la Tabla Deposito // ActualizarSaldo(db, n_Account, n_Monto, '-');//Disminuye el saldo de la cuenta de origen (- Monto) ActualizarSaldo(db, n_AccountDest, n_Monto, '+');//Aumenta el saldo de la cuenta destino (+ Monto) affected = db.SaveChanges(); return(affected == 1); } }
private static bool Retiro(int n_Account, Transacciones newTrans, ref int atmMoney) { Dictionary <int, int> retCants = new Dictionary <int, int>(); //Se crea un diccionario para relacionar el índice de cada retiro con su valor. retCants.Add(1, 20); //1: $20 retCants.Add(2, 40); //2: $40 retCants.Add(3, 60); //3: $60 retCants.Add(4, 100); //4: $100 retCants.Add(5, 200); //5: $200 Console.Clear(); aRetiro: Console.WriteLine("Elige el monto a retirar\n1:$20\n2:$40\n3:$60\n4:$100\n5:$200\n6:Cancelar Operación"); int opt = Convert.ToInt32(Console.ReadLine()); if (opt == 6)//Si opt es igual a 6(Cancelar Operacion)... { return(false); } decimal n_Monto = retCants[opt]; //n_Monto adquiere el valor del monto a retirar, a partir del diccionario. if (atmMoney < n_Monto) //Si la cantidad de dinero del cajero es menor que el monto a retirar... { Console.Clear(); Console.WriteLine("Lo sentimos, el cajero no cuenta con el dinero suficiente, escoge otro monto"); return(false); } using (var db = new ATMdb()) { if (!VerifyEnoughBalance(db, n_Account, n_Monto))//Se llama a VerifyEnoughBalance para verificar si el Usuario cuenta //con los fondos suficientes. { Console.WriteLine("Fondos Insuficientes"); goto aRetiro; } ActualizarSaldo(db, n_Account, n_Monto, '-'); //Se llama a esta función para restarle al usuario el monto que retiró. db.Transacciones.Add(newTrans); //Se inserta el registro en Transacciones. int affected = db.SaveChanges(); //Se guardan los cambios. int maxFolio = db.Transacciones.Max(p => p.Folio); //Se obtiene el Folio de la Transacción generada. var newRetiro = new Retiro //Se crea la variable newRetiro de tipo retiro. { Folio = maxFolio, monto = n_Monto }; db.Retiro.Add(newRetiro); //Se inserta el registro en Retiro. Console.WriteLine("Saldo Actualizado!"); affected = db.SaveChanges(); //Se guardan los cambios. return(affected == 1); } }