private static bool CheckAmountInput(string amount, string userName) // eos position 6
        {
            bool    isNotDecimal = false;
            decimal num          = 0.00m;

            if (!decimal.TryParse(amount, out num))
            {
                Console.Clear();
                string message = "Not valid input!";
                ConsoleLayout.Attention(message, 0);

                ConsoleLayout.Position(2);
                Console.WriteLine("To choose a correct amount please press 'Enter'");

                ConsoleLayout.Position(4);
                Console.WriteLine("To go back to menou please type 'M' and press enter");

                string message1 = "What's this?";
                ConsoleLayout.Speech(message1, -4);

                ConsoleLayout.Position(6);
                string userinput = Convert.ToString(Console.ReadLine());


                if ((userinput == "M") || (userinput == "m"))
                {
                    ShowMenus.ChooseUser(userName);
                }

                isNotDecimal = true;
                Console.Clear();
            }
            return(isNotDecimal);
        }
        private static bool CheckUsernameToTransfer(string userName, string userToTransfer)// eos position 6
        {
            string query           = "SELECT COUNT (username) FROM users WHERE username = '******'";
            int    result          = Convert.ToInt32(AddQuerryInt(query));
            bool   invalidUsername = false;

            if (result == 0.000)
            {
                Console.Clear();

                string message = "The user you are looking for does not exists.";
                ConsoleLayout.Attention(message, 0);

                ConsoleLayout.Position(2);
                Console.WriteLine("To choose an other username please press 'Enter'");

                ConsoleLayout.Position(4);
                Console.WriteLine(" To go back to menou please type 'M'");

                string message1 = "Who's that?";
                ConsoleLayout.Speech(message1, -4);

                ConsoleLayout.Position(6);
                string userinput = Convert.ToString(Console.ReadLine());

                if ((userinput == "M") || (userinput == "m"))
                {
                    ShowMenus.ChooseUser(userName);
                }
                invalidUsername = true;
            }
            return(invalidUsername);
        }
        public static decimal ViewOthersAccount(string userName)
        {
            string usernameToTransfer = "";

            do
            {
                Console.Clear();

                ConsoleLayout.Position(0);
                Console.WriteLine("Please choose the username account you wish to view");

                ConsoleLayout.Position(2);
                usernameToTransfer = Console.ReadLine();
            } while (CheckUsernameToTransfer(userName, usernameToTransfer));

            decimal account = 0;

            string query = "SELECT amount FROM accounts WHERE EXISTS (SELECT username FROM users WHERE (id = accounts.user_id) AND (username = '******'))";

            account = Convert.ToDecimal(AddQuerry(query));

            ConsoleLayout.Position(8);
            Console.WriteLine("USER: {0} AMOUNT: {1} ", usernameToTransfer, account);

            ConsoleLayout.Position(10);
            Console.ReadLine();
            Login.CloseConnection();

            return(account);
        }
        public static void Withdraw(string userName)
        {
            string userToWithdraw = "";
            string message1       = "Please choose the name of the user you wish to withdraw from: ";

            userToWithdraw = CheckUserToTransferMethod(userName, userToWithdraw, message1);

            string amount   = "";
            string message2 = "Please insert the amount to be withdrawn";

            amount = CheckAmountMethod(userName, amount, message2);

            decimal amountToWithdraw = Convert.ToDecimal(amount);

            string  query1 = "SELECT amount FROM accounts WHERE EXISTS (SELECT username FROM users WHERE (id = accounts.user_id) and (username = '******'))";
            decimal availableUsersAmount = Convert.ToDecimal(AddQuerry(query1));

            while (availableUsersAmount < amountToWithdraw)
            {
                Console.Clear();
                string message = "Sorry, no available amount to withdraw, try again!";
                ConsoleLayout.Attention(message, 0);
                System.Threading.Thread.Sleep(2000);
                amount           = CheckAmountMethod(userName, amount, message2);
                amountToWithdraw = Convert.ToDecimal(amount);
            }

            string  query2       = "SELECT amount FROM accounts WHERE EXISTS (SELECT username FROM users WHERE (id = accounts.user_id) and (username = '******'))";
            decimal adminsAmount = Convert.ToDecimal(AddQuerry(query2));

            decimal usersNewbal  = availableUsersAmount - amountToWithdraw;
            decimal adminsNewBal = amountToWithdraw + adminsAmount;
            decimal newBalance   = 0;

            string query3 = "UPDATE accounts SET amount = " + usersNewbal + " WHERE exists (SELECT username FROM users WHERE (id = accounts.user_id) AND (username = '******')); UPDATE accounts SET amount = " + adminsNewBal + "WHERE exists (SELECT username FROM users WHERE (id = accounts.user_id) and (username = '******'))";

            ExecuteQuery(query3);
            string query4 = "SELECT amount FROM accounts WHERE EXISTS (SELECT username FROM users WHERE (id = accounts.user_id) AND (username = '******'))";

            newBalance = Convert.ToDecimal(AddQuerry(query4));

            ConsoleLayout.Position(6);
            Console.WriteLine("Transaction was successfully completed!");
            ConsoleLayout.Position(8);
            Console.WriteLine("New bank balance: {0} euros", newBalance);
            System.Threading.Thread.Sleep(3000);

            Login.CloseConnection();

            DateTime    time        = DateTime.Now;
            BankAccount Transaction = new BankAccount(time, "admin", amountToWithdraw, KindOfTransaction.Withdrawal, userToWithdraw);

            BankAccount.AddList("admin", Transaction);
        }
        public static void DepositTo(string userName)
        {
            string receiversUsername = "";
            string message           = "Please enter the username you wish to deposit to: ";

            receiversUsername = CheckUserToTransferMethod(userName, receiversUsername, message);

            string amount   = "";
            string message2 = "Please enter the amount you wish to transfer: ";

            amount = CheckAmountMethod(userName, amount, message2);

            decimal amountToTransfer = Convert.ToDecimal(amount);

            string  query1 = "SELECT amount FROM accounts WHERE EXISTS(SELECT username FROM users WHERE id = accounts.user_id AND username = '******')";
            decimal availableDepositersAmount = Convert.ToDecimal(AddQuerry(query1));

            while (availableDepositersAmount < amountToTransfer)
            {
                Console.Clear();
                string message1 = "Sorry, no available amount to transfer, try again!";
                ConsoleLayout.Attention(message1, 0);
                System.Threading.Thread.Sleep(2000);
                amount           = CheckAmountMethod(userName, amount, message2);
                amountToTransfer = Convert.ToDecimal(amount);
            }

            string  query2           = "SELECT amount FROM accounts WHERE EXISTS(SELECT username FROM users WHERE id = accounts.user_id AND username = '******')";
            decimal receiversAccount = Convert.ToDecimal(AddQuerry(query2));

            decimal depositorsNewbal = availableDepositersAmount - amountToTransfer;
            decimal receiversNewBal  = receiversAccount + amountToTransfer;
            decimal newBalance       = 0;

            string query3 = "UPDATE accounts SET amount = " + depositorsNewbal + " WHERE EXISTS (SELECT username FROM users WHERE (id = accounts.user_id) AND (username = '******')); UPDATE accounts SET amount = " + receiversNewBal + "WHERE exists (SELECT username FROM users WHERE (id = accounts.user_id) and (username = '******'))";

            ExecuteQuery(query3);
            string query4 = "SELECT amount FROM accounts WHERE EXISTS (SELECT username FROM users WHERE (id = accounts.user_id) AND (username = '******'))";

            newBalance = Convert.ToDecimal(AddQuerry(query4));
            ConsoleLayout.Position(8);
            Console.WriteLine("Transaction was successfully completed!");
            ConsoleLayout.Position(9);
            Console.WriteLine("New bank balance: {0}", newBalance);
            System.Threading.Thread.Sleep(3000);

            Login.CloseConnection();

            DateTime    time        = DateTime.Now;
            BankAccount Transaction = new BankAccount(time, userName, amountToTransfer, KindOfTransaction.Deposit, receiversUsername);

            BankAccount.AddList(userName, Transaction);
        }
        public static decimal ViewMyAccount(string username)
        {
            string  query   = "SELECT amount FROM accounts WHERE EXISTS (SELECT username FROM users WHERE (id = accounts.user_id) AND (username = '******'))";
            decimal account = Convert.ToDecimal(AddQuerry(query));

            ConsoleLayout.Position(0);
            Console.WriteLine("You current balance is: {0}", account);

            ConsoleLayout.Position(2);
            Console.ReadLine();
            Login.CloseConnection();
            return(account);
        }
        private static string CheckAmountMethod(string userName, string amount, string message)
        {
            do
            {
                Console.Clear();
                ConsoleLayout.Position(0);
                Console.WriteLine(message);
                //System.Threading.Thread.Sleep(2000);
                ConsoleLayout.Position(2);
                amount = Convert.ToString(Console.ReadLine());
            }while (CheckAmountInput(amount, userName));

            return(amount);
        }
        private static string CheckUserToTransferMethod(string userName, string receiversUsername, string message)
        {
            do
            {
                Console.Clear();

                ConsoleLayout.Position(0);
                Console.WriteLine(message);

                ConsoleLayout.Position(2);
                receiversUsername = Convert.ToString(Console.ReadLine());
            }while (CheckUsernameToTransfer(userName, receiversUsername));

            return(receiversUsername);
        }
        public static void ExitApplication(string userName)
        {
            ConsoleLayout.Position(0);
            string title = @"
                                      _                _                
                                     | |              | |            |||
                                     | |         _    | |         _  |||
                                     |/ \_|   | |/    |/ \_|   | |/  |||
                                      \_/  \_/|/|__/   \_/  \_/|/|__/ooo
                                             /|               /|        
                                             \|               \|        ";

            Console.WriteLine(title);
            string message = "Bye bye" + userName;

            ConsoleLayout.Speech(message);
            ConsoleLayout.Position(12);
            Environment.Exit(0);
        }
Exemple #10
0
        public static void SendToFile(string user)
        {
            List <BankAccount> listBankAccount = new List <BankAccount>();
            BankAccount        transaction     = new BankAccount();

            listBankAccount = UsersMenu.listBankAccount;

            StreamWriter tw = new StreamWriter(@"C:\Users\Antonia\Desktop\BankTransactionsProject\Transaction_Statements\" + FileName(user) + ".txt");

            using (tw)
            {
                foreach (BankAccount s in listBankAccount)
                {
                    tw.WriteLine(s);
                }
            }

            Console.Clear();
            ConsoleLayout.Position(0);
            Console.WriteLine("Your statement has been sent to your Bank Account Statements!");
            Console.ReadLine();
        }
        public static void CheckUser(SqlConnection sqlconn)
        {
            Welcome();
            int result = 0;
            int i      = 2;

            do
            {
                // Console.WriteLine("{0," + Console.WindowWidth / 2 + "}", " ");
                ConsoleLayout.Position(0);
                Console.WriteLine("Please enter your username");

                ConsoleLayout.Position(2);
                string userName = Convert.ToString(Console.ReadLine());

                ConsoleLayout.Position(4);
                Console.WriteLine("Please enter your password");

                ConsoleLayout.Position(6);
                string passWord = GenerateSHA256String(Hide());


                //sc.Parameters.AddWithValue("@password", GetHashedText(pass.Text));

                SqlCommand cmd = new SqlCommand("SELECT COUNT (*) FROM users WHERE username = @username AND password = @password", sqlconn);
                cmd.Parameters.AddWithValue("@username", userName);
                cmd.Parameters.AddWithValue("@password", passWord);
                result = (int)cmd.ExecuteScalar();

                if (result > 0)
                {
                    ConsoleLayout.Position(10);
                    Console.WriteLine("Successful Connection");

                    System.Threading.Thread.Sleep(1000);
                    Console.Clear();
                    ShowMenus.ChooseUser(userName);
                    break;
                }
                else if (i == 0)
                {
                    string message1 = "Where is your mind?";
                    ConsoleLayout.Speech(message1, 0);
                    string message = "Sorry, invalid user!!!";
                    ConsoleLayout.Attention(message, 10);

                    ConsoleLayout.Position(12);
                    Environment.Exit(0);
                }
                else
                {
                    i--;
                    string message = "Unsuccessfull Connection";
                    ConsoleLayout.Attention(message, 10);
                    ConsoleLayout.Position(12);
                    Console.WriteLine("Please try again, {0} tries left!!!", i + 1);

                    System.Threading.Thread.Sleep(1000);
                    Console.Clear();
                }
            }while ((result == 0) && (i >= 0));
        }
Exemple #12
0
        public static void ChooseUser(string userName)
        {
            if ((userName == "admin") || (userName == "ADMIN"))
            {
                string[] menuItems = { "View my account", "View Members’ bank accounts", "Deposit to Member's bank account", "Withdaw from Member's bank account", "Send to file today's statement", "Exit the application" };

                short          curItem = 0, c;
                ConsoleKeyInfo key;
                do
                {
                    Console.Clear();

                    ConsoleLayout.Position(0);
                    Console.WriteLine("~*~*~*~  Hello {0}!  ~*~*~*~ \t", userName);

                    int leftOffSet = (Console.WindowWidth / 3) - 20;
                    int topOffSet  = (Console.WindowHeight / 3) + 1;
                    Console.SetCursorPosition(leftOffSet, topOffSet);
                    Console.WriteLine("Please Choose an action to perform and press enter \t\t\t \n");

                    for (c = 0; c < menuItems.Length; c++)
                    {
                        if (curItem == c)
                        {
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.DarkGray;

                            //Console.Write(String.Format("{0," + Console.WindowWidth / 2 + "}", ">> "));
                            Console.WriteLine(String.Format("{0," + Console.WindowWidth / 2 + "}", menuItems[c]));
                            //Console.Write(">> ");
                            //Console.WriteLine(menuItems[c]);

                            Console.BackgroundColor = ConsoleColor.DarkMagenta;
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        else
                        {
                            Console.WriteLine(String.Format("{0," + Console.WindowWidth / 2 + "}", menuItems[c]));
                            //Console.WriteLine(menuItems[c]);
                        }
                    }
                    Console.WriteLine("\b");

                    key = Console.ReadKey(true);

                    if (key.Key.ToString() == "DownArrow")
                    {
                        curItem++;
                        if (curItem > menuItems.Length - 1)
                        {
                            curItem = 0;
                        }
                    }
                    else if (key.Key.ToString() == "UpArrow")
                    {
                        curItem--;
                        if (curItem < 0)
                        {
                            curItem = Convert.ToInt16(menuItems.Length - 1);
                        }
                    }
                } while (key.KeyChar != 13);

                switch (curItem)
                {
                case 0:
                    Console.Clear();
                    UsersMenu.ViewMyAccount(userName);
                    ChooseUser(userName);
                    break;

                case 1:
                    Console.Clear();
                    UsersMenu.ViewOthersAccount(userName);
                    ChooseUser(userName);
                    break;

                case 2:
                    Console.Clear();
                    UsersMenu.DepositTo(userName);
                    ChooseUser(userName);
                    break;

                case 3:
                    Console.Clear();
                    UsersMenu.Withdraw(userName);
                    ChooseUser(userName);
                    break;

                case 4:
                    BankAccount.FileName(userName);
                    BankAccount.SendToFile(userName);
                    ChooseUser(userName);
                    Console.Clear();
                    break;

                case 5:
                    Console.Clear();
                    UsersMenu.ExitApplication(userName);
                    //System.Threading.Thread.Sleep(2000);
                    //Environment.Exit(0);
                    break;
                }
            }
            else
            {
                string[] menuItems = { "View my account", "Deposit to Cooperative’s internal bank account", "Deposit to Member's bank account", "Send to file today's statement", "Exit the application" };

                short          curItem = 0, c;
                ConsoleKeyInfo key;
                do
                {
                    Console.Clear();

                    ////Console.WriteLine(String.Format("{0," + Console.WindowWidth / 3 + "}", "\tHello {0}!"), userName);
                    ConsoleLayout.Position(0);
                    Console.WriteLine("~*~*~*~  Hello {0}!  ~*~*~*~ \t", userName);

                    ////Console.WriteLine(String.Format("{0," + Console.WindowWidth / 2 + "}", "Please Choose an action to perform and press enter"));
                    int leftOffSet = (Console.WindowWidth / 3) - 20;
                    int topOffSet  = (Console.WindowHeight / 3) + 2;
                    Console.SetCursorPosition(leftOffSet, topOffSet);
                    Console.WriteLine("Please Choose an action to perform and press enter \t\t\t \n");

                    for (c = 0; c < menuItems.Length; c++)
                    {
                        if (curItem == c)
                        {
                            Console.BackgroundColor = ConsoleColor.Yellow;
                            Console.ForegroundColor = ConsoleColor.DarkGray;

                            //Console.Write(String.Format("{0," + Console.WindowWidth / 2 + "}", ">> "));
                            Console.WriteLine(String.Format("{0," + Console.WindowWidth / 2 + "}", menuItems[c]));
                            //Console.Write(">> ");
                            //Console.WriteLine(menuItems[c]);

                            Console.BackgroundColor = ConsoleColor.DarkMagenta;
                            Console.ForegroundColor = ConsoleColor.White;
                        }
                        else
                        {
                            Console.WriteLine(String.Format("{0," + Console.WindowWidth / 2 + "}", menuItems[c]));
                            //Console.WriteLine(menuItems[c]);
                        }
                    }
                    Console.WriteLine("\b");

                    key = Console.ReadKey(true);

                    if (key.Key.ToString() == "DownArrow")
                    {
                        curItem++;
                        if (curItem > menuItems.Length - 1)
                        {
                            curItem = 0;
                        }
                    }
                    else if (key.Key.ToString() == "UpArrow")
                    {
                        curItem--;
                        if (curItem < 0)
                        {
                            curItem = Convert.ToInt16(menuItems.Length - 1);
                        }
                    }
                } while (key.KeyChar != 13);

                switch (curItem)
                {
                case 0:
                    Console.Clear();
                    UsersMenu.ViewMyAccount(userName);
                    ChooseUser(userName);
                    break;

                case 1:
                    Console.Clear();
                    UsersMenu.DepositToCooperative(userName);
                    ChooseUser(userName);
                    break;

                case 2:
                    Console.Clear();
                    UsersMenu.DepositTo(userName);
                    ChooseUser(userName);
                    break;

                case 3:
                    Console.Clear();
                    BankAccount.FileName(userName);
                    BankAccount.SendToFile(userName);
                    ChooseUser(userName);
                    break;

                case 4:
                    Console.Clear();
                    UsersMenu.ExitApplication(userName);
                    break;
                }
            }
        }