static void Main(string[] args)
        {
            Console.WriteLine(FiggleFonts.Standard.Render("Welcome to 1150 Bank"));

            //authorizes pin number
            AuthService authService = new AuthService();

            Console.WriteLine("enter your pin");
            var pin = Int32.Parse(Console.ReadLine());

            authService.VerifyAccount(pin);

            Console.WriteLine("before");
            //            TransactionChoice transaction = new TransactionChoice();
            TransactionMenu transaction = new TransactionMenu();

            Console.WriteLine("after");

            //    BankController demo = new BankController();
            //   demo.Add_Customer();
        }
    static void Main()
    {
        System.Console.WriteLine("\n\t\t************* WELCOME TO PECUNIA BANK ***********\t\t \n");
        System.Console.WriteLine("\t\tPecunia Finance Limited, established in the year 2015");
        System.Console.WriteLine("\t\t\t\tBangalore, India.");
        string ch = "Y";

        do
        {
            //Menu For Choosing Options
            System.Console.WriteLine("\n1 - NEW CUSTOMER ");
            System.Console.WriteLine("\n2 - NEW ACCOUNT");
            System.Console.WriteLine("\n3 - TRANSACTIONS");
            System.Console.WriteLine("\n4 - LOANS");
            System.Console.WriteLine("\n5- HOUSE LOAN");
            System.Console.WriteLine("\n6 - CREDIT CARD");

            Console.Write("\nEnter Your choice : ");

            ch = System.Console.ReadLine();
            switch (ch)
            {
            case "1":
                //Creating object to CustomerPresentationLayer
                CustomerPresentationLayer p = new CustomerPresentationLayer();
                p.start();
                break;

            case "2":
                AccountsPresentationLayer.Start();
                break;

            case "3":
                //Calling method
                TransactionMenu.Start();

                break;

            case "4":
                PersonalVehicleLoanPresentationLayer.Start();
                break;

            case "5":
                HousingLoanPresentationLayer.Start();
                break;

            case "6":
                //Creating object to CreditcardPresentationLayer
                CreditcardPresentationLayer cr = new CreditcardPresentationLayer();
                cr.start();
                break;

            default:
                Console.WriteLine("\nOoops......You have Choosen Wrong Option\n");
                break;
            }
            Console.Write("\n Do you want to Use PECUNIA BANK Again press Y else Press Any Key : ");
            ch = Console.ReadLine();
        } while (ch == "Y" || ch == "y");
        Console.ReadKey();
    }
        public static void TransactionMenu(BankService bankService, AccountService accountService)
        {
            TransactionService transactionService = new TransactionService(bankService.CurrentBank.Id);

            Console.Write(Constant.TransactionMenu);

            TransactionMenu option = (TransactionMenu)Helper.GetValidInteger();

            switch (option)
            {
            case Models.TransactionMenu.Deposit:
                Console.Write(Constant.AccountNumber);
                string accountNumber = Helper.GetValidString();

                if (bankService.HasAccount(accountNumber))
                {
                    Console.WriteLine(Constant.UserNotFound);
                }
                else
                {
                    Console.Write(Constant.TransactionAmount);
                    double payout = Helper.GetValidDouble();

                    Console.Write(Constant.CurrencyRate);
                    double currencyValue = Helper.GetValidDouble();

                    payout = currencyValue * payout;

                    if (!accountService.Deposit(accountNumber, payout))
                    {
                        Console.WriteLine(Constant.CurrencyRate, accountService.GetBalance(accountNumber));
                    }

                    else
                    {
                        Console.WriteLine(Constant.DepositDecline);
                    }
                }
                Console.ReadKey();

                break;

            case Models.TransactionMenu.CashWithdraw:
                Console.Write(Constant.AccountNumber);
                accountNumber = Helper.GetValidString();

                if (bankService.HasAccount(accountNumber))
                {
                    Console.WriteLine(Constant.UserNotFound);
                }
                else
                {
                    Console.Write(Constant.TransactionAmount);
                    double payout = Helper.GetValidDouble();

                    if (accountService.CashWithdraw(accountNumber, payout))
                    {
                        Console.WriteLine(Constant.NewBalance, accountService.GetBalance(accountNumber));
                    }

                    else
                    {
                        Console.WriteLine(Constant.CashWithDrawDecline);
                    }
                }

                Console.ReadKey();

                break;

            case Models.TransactionMenu.FundTransfer:
                Console.Write(Constant.SourceAccountNumber);
                string SourceAccountNumber = Helper.GetValidString();

                Console.Write(Constant.DestinationAccountNumber);
                string DestinationAccountNumber = Helper.GetValidString();

                Console.Write(Constant.DestinationBankId);
                string DestinationIFSCCode = Helper.GetValidString();

                Console.Write(Constant.TransactionAmount);
                double amount = Helper.GetValidDouble();
                if (accountService.FundTransaction(SourceAccountNumber, DestinationAccountNumber, bankService.CurrentBank.Id, DestinationIFSCCode, amount))
                {
                    Console.WriteLine(Constant.FundTranserDecline);
                }
                Console.ReadKey();

                break;

            case Models.TransactionMenu.ViewAccountAccount:
                Console.Write(Constant.AccountNumber);
                string getAccountNumber = Helper.GetValidString();

                double?fundBalance = transactionService.ViewBalence(getAccountNumber);
                if (fundBalance != null)
                {
                    Console.WriteLine(Constant.NewBalance, fundBalance);
                }
                else
                {
                    Console.WriteLine(Constant.AcoountNotFound);
                }

                Console.ReadKey();

                break;

            case Models.TransactionMenu.TransactionRevert:
                Console.Write(Constant.TransactionId);
                string Id = Helper.GetValidString();

                if (!transactionService.RevertTransaction(Id))
                {
                    Console.WriteLine(Constant.RevertDecline);
                }
                else
                {
                    Console.WriteLine(Constant.RevertDone);
                }
                Console.ReadKey();

                break;

            case Models.TransactionMenu.SignOut:
                break;

            case Models.TransactionMenu.Exit:
                Environment.Exit(0);

                break;

            default:
                TransactionMenu(bankService, accountService);

                break;
            }
        }