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);
            }
        }