public ActionResult ChangePINconfirm(FormCollection collection)
        {
            ATM atm = (ATM)Session["ATM"];
            Card card = (Card)Session["Card"];
            string newPin = (string)Session["NewPin"];
            string confPin = collection["txtConfPin"];

            if (CheckSystax(confPin))
            {

                return View();

            }
            else if (CheckMatchNewAndConf(confPin, newPin) == false)
            {
                return View();
            }

            card.PIN = newPin;
            Card cardPIN = db.Cards.Find(card.CardNo);
            cardPIN.PIN = card.PIN;
            db.Entry(cardPIN).State = EntityState.Modified;
            db.SaveChanges();

            // Ghi Log cho change PIN
            lc = new LogController();
            string detailsFrom = "";
            lc.WriteLog(4, 1, card.CardNo, 0, detailsFrom);
            return RedirectToAction("SuccessTransAsking", "Home");
        }
        /// <summary>
        /// Kiểm tra số dư
        /// </summary>
        /// <returns></returns>
        public ActionResult CheckBalance()
        {
            ATM atm = (ATM)Session["ATM"];
            Card card = (Card)Session["Card"];
            string cardNo;
            cardNo = card.CardNo;

            Account account = db.Accounts.Find(card.AccountID);
            decimal balance = (decimal)account.Balance;
            ViewBag.balanc = balance;

            lc = new LogController();
            string detailsFrom = "";
            lc.WriteLog(3, 1, card.CardNo, 0, detailsFrom);

            return View();
        }
        public ActionResult Withdraw(string submitButton)
        {
            Card card = (Card)Session["Card"];
            ATM atm = (ATM)Session["ATM"];
            int amount = 0;
            bool kiemTraAcc, kiemTraAtm, kiemTraLimitWithdraw;
            // lay account qua card
            Account account = db.Accounts.Find(card.AccountID);
            // xu ly lua chon rut tien
            switch (submitButton)
            {
                case "500.000":
                    {
                        amount = 500000;
                    }
                    break;
                case "1.000.000":
                    {
                        amount = 1000000;
                    }
                    break;

                case "2.000.000":
                    {
                        amount = 2000000;
                    }
                    break;

                case "3.000.000":
                    {
                        amount = 3000000;
                    }
                    break;

                case "Other":
                    {
                        return RedirectToAction("WithdrawOther", "Account");
                    }
                //break;
                default:
                    {
                        return View();
                    }
                //break;
            }
            kiemTraAcc = checkAccount(amount, account);// goi ham kiem tra  tai khoan account
            kiemTraAtm = checkATM(amount); // goi ham kiem tra tien trong ATM
            string kiemTraType = checkTypeMoney(amount); // goi ham kiem tra tung menh gia trong ATM
            kiemTraLimitWithdraw = checkLimitWithdraw(amount, account);//goi ham kiem tra gioi han rut tien cua tai khoan
            if (kiemTraAcc == true && kiemTraAtm == true && kiemTraLimitWithdraw == true && kiemTraType != "")
            {
                // tru tien trong tai khoan
                account.Balance -= amount;

                //ghi log
                lc = new LogController();
                string detailsFrom = "";
                lc.WriteLog(1, 1, card.CardNo, amount, detailsFrom);
                // goi ham tru tien o ATM và hien view so tien ma khach se nhan duoc
                ViewBag.money = kiemTraType;
                db.SaveChanges();
                return View();

            }
            else
            {
                ViewBag.Error = showError(kiemTraAcc, kiemTraLimitWithdraw, kiemTraAtm, kiemTraType);
                return View();
            }
        }
        public ActionResult WithdrawOther(Account a)
        {
            decimal amount = (decimal)a.Balance;

            if (amount % 50000 == 0)
            {
                if (amount <= 10000000)
                {
                    Card card = (Card)Session["Card"];
                    ATM atm = (ATM)Session["ATM"];

                    Account account = db.Accounts.Find(card.AccountID);
                    bool kiemTraAcc, kiemTraAtm, kiemTraLimitWithdraw;
                    kiemTraAcc = checkAccount(amount, account);// goi ham kiem tra  tai khoan account
                    kiemTraAtm = checkATM(amount); // goi ham kiem tra tien trong ATM
                    string kiemTraType = checkTypeMoney(amount); // goi ham kiem tra tung menh gia trong ATM
                    kiemTraLimitWithdraw = checkLimitWithdraw(amount, account);//goi ham kiem tra gioi han rut tien cua tai khoan
                    if (kiemTraAcc == true && kiemTraAtm == true && kiemTraLimitWithdraw == true && kiemTraType != "")
                    {
                        // tru tien trong tai khoan
                        account.Balance -= amount;

                        //ghi log
                        lc = new LogController();
                        string detailsFrom = "";
                        lc.WriteLog(1, 1, card.CardNo, amount, detailsFrom);
                        // goi ham tru tien o ATM và hien view so tien ma khach se nhan duoc
                        ViewBag.money = kiemTraType;
                        db.SaveChanges();
                        return View();

                    }
                    else
                    {
                        ViewBag.Error = showError(kiemTraAcc, kiemTraLimitWithdraw, kiemTraAtm, kiemTraType);
                        return View();
                    }
                }
                else
                {
                    ViewBag.Error = "Số tiền rút cho phép là dưới mười triệu đồng :10000000";
                    return View();
                }
            }
            else
            {
                ViewBag.Error = "Số tiền rút phải là bội của năm mươi nghìn đồng:50.000";
                return View();

            }
        }
        public ActionResult TransferCashConfirm(Account account)
        {
            ATM atm = (ATM)Session["ATM"];

            Card card = (Card)Session["Card"];
            Account accountFrom = db.Accounts.Find(card.AccountID);

            // Tránh lỗi mutipleEntity ?!?
            Account accountto = (Account)Session["AccountTo"];
            int accountToID = accountto.AccountID;
            Account accountTo = db.Accounts.Find(accountToID);

            decimal amount = (decimal)Session["AmountTransfer"];

            accountFrom.Balance = accountFrom.Balance - amount;
            accountTo.Balance = accountTo.Balance + amount;
            db.Entry(accountFrom).State = EntityState.Modified;
            db.Entry(accountTo).State = EntityState.Modified;
            db.SaveChanges();

            // Ghi Log cho tk gửi
            lc = new LogController();
            // Details chỉ đến tên chủ tài khoản + AccNo
            string detailsFrom = "Transfer cash to " + accountTo.Customer.Name + " AccountID: " + accountTo.AccountID;
            lc.WriteLog(2, atm.ATMID, card.CardNo, amount, detailsFrom);

            //string detailsTo = "Receive cash from " + accountFrom.Customer.Name + " AccountID: " + accountFrom.AccountID;

            // Xóa Session
            Session["AccountTo"] = null;
            Session["AmountTransfer"] = null;

            return RedirectToAction("SuccessTransAsking", "Home");
        }