public void DeleteAccount()
        {
            var manager = new AccountManager();

            Console.WriteLine("Please provide the account number you wish to delete: ");
            int toDelete = Int32.Parse(Console.ReadLine());

            var response = manager.Delete(toDelete);

            if (response.Success)
            {
                Console.WriteLine("Account number {0} has been deleted.", toDelete);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
            else
            {
                Console.Clear();
                Console.WriteLine("An error occurred.  {0}", response.Message);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }

            manager.Delete(toDelete);
        }
        public void NotFoundAccountReturnsFail()
        {
            var manager = new AccountManager();

            var response = manager.GetAccount(9999);

            Assert.IsFalse(response.Success);
        }
        public void TransferSuccess()
        {
            var manager = new AccountManager();

            var response = manager.Transfer(1, 4, 40M);

            Assert.AreEqual(response.Data.NewBalanceFrom, 307M);
               Assert.AreEqual(response.Data.NewBalanceTo,10000040M);
        }
        public void AccountWithdrawFails()
        {
            var repo = new AccountRepository();
            var accountToWithdraw = repo.LoadAccount(2);
            var accountManager = new AccountManager();
            var response = accountManager.Withdraw(accountToWithdraw, 200M);

            Assert.AreEqual(false, response.Success);
        }
        public void AccountDepositFailsZero()
        {
            var repo = new AccountRepository();
            var accountToDeposit = repo.LoadAccount(2);
            var accountManager = new AccountManager();
            var response = accountManager.Deposit(accountToDeposit, 0);

            Assert.IsFalse(response.Success);
        }
        public void FoundAccountReturnsSuccess()
        {
            var manager = new AccountManager();

            var response = manager.GetAccount(1);

            Assert.IsTrue(response.Success);
            Assert.AreEqual(1, response.Data.AccountNumber);
            Assert.AreEqual("Mary", response.Data.FirstName);
        }
        public void AccountWithdrawSucceeds()
        {
            var repo = new AccountRepository();
            var accountToWithdraw = repo.LoadAccount(3);
            var accountManager = new AccountManager();
            var response = accountManager.Withdraw(accountToWithdraw, 100M);

            Assert.AreEqual(455M, response.Data.NewBalance);
            Assert.AreEqual(100M, response.Data.WithdrawAmount);
            Assert.AreEqual(true, response.Success);
        }
        public void AccountDepositSucceeds()
        {
            var repo = new AccountRepository();
            var accountToDeposit = repo.LoadAccount(1);
            var accountManager = new AccountManager();
            var response = accountManager.Deposit(accountToDeposit, 150M);

            Assert.AreEqual(497M, response.Data.NewBalance);
            Assert.AreEqual(150M, response.Data.DepositAmount);
            Assert.AreEqual(true, response.Success);
        }
        public void CreateNewAccount()
        {
            var manager = new AccountManager();

            string[] newAccountInfo = new string[3];

            Console.WriteLine("Please enter the first name of the customer: ");
            newAccountInfo[0] = Console.ReadLine();
            Console.WriteLine("Please enter the last name of the customer: ");
            newAccountInfo[1] = Console.ReadLine();
            Console.WriteLine("Please enter the initial amount of the first deposit: ");
            newAccountInfo[2] = Console.ReadLine();
            Console.Clear();

            manager.Create(newAccountInfo);
        }
        public void DisplayAccountInformation(int accountNumber)
        {
            var manager = new AccountManager();

            var response = manager.GetAccount(accountNumber);

            Console.Clear();

            if (response.Success)
            {
                _currentAccount = response.Data;
                PrintAccountDetails(response);
                DisplayLookupMenu();
            }
            else
            {
                Console.WriteLine("A problem occurred...");
                Console.WriteLine(response.Message);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }
        public void Execute(Account accountFrom, Account accountTo)
        {
            decimal amount = GetTransferAmount();

            var manager = new AccountManager();

            var response = manager.Transfer(accountFrom, accountTo, amount);

            if (response.Success)
            {
                Console.Clear();
                Console.WriteLine("Transfered {0:c} from account {1} to account {2}. New Balance is {3}.", response.Data.TransferAmount, response.Data.AccountNumberFrom, response.Data.AccountNumberTo, response.Data.NewBalance);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
            else
            {
                Console.Clear();
                Console.WriteLine("An error occurred.  {0)", response.Message);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }
        public void Execute(Account account)
        {
            decimal amount = GetDepositAmount();

            var manager = new AccountManager();

            var response = manager.Deposit(account, amount);

            if (response.Success)
            {
                Console.Clear();
                Console.WriteLine("Deposited {0:c} to account {1}.  New Balance is {2}.", response.Data.DepositAmount, response.Data.AccountNumber, response.Data.NewBalance);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
            else
            {
                Console.Clear();
                Console.WriteLine("An error occurred.  {0}", response.Message);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }
        private void GetTransferAccount(int accountNumber)
        {
            var manager = new AccountManager();

            var accountReturned = manager.GetAccount(accountNumber);

            if (accountReturned.Success)
            {
                _toTransferToAccout = accountReturned.Data;
            }
            else
            {
                Console.WriteLine("A problem occurred...");
                Console.WriteLine(accountReturned.Message);
                Console.WriteLine("Press any key to continue...");
                Console.ReadKey();
            }
        }