Ejemplo n.º 1
0
        public void Run()
        {
            //Menu for login and registration
            while (true)
            {
                Console.WriteLine("Welcome to TEnmo!");
                Console.WriteLine("1: Login");
                Console.WriteLine("2: Register");
                Console.WriteLine("3: Exit");
                Console.Write("Please choose an option: ");

                int loginRegister = -1;

                try
                {
                    if (!int.TryParse(Console.ReadLine(), out loginRegister))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }

                    else if (loginRegister == 1)
                    {
                        LoginUser loginUser = PromptForLogin();
                        API_User  user      = authService.Login(loginUser);
                        if (user != null)
                        {
                            UserService.SetLogin(user);
                            MenuSelection();
                        }
                    }

                    else if (loginRegister == 2)
                    {
                        LoginUser registerUser = PromptForLogin();
                        bool      isRegistered = authService.Register(registerUser);
                        if (isRegistered)
                        {
                            Console.WriteLine("");
                            Console.WriteLine("Registration successful. You can now log in.");
                        }
                    }

                    else if (loginRegister == 3)
                    {
                        Console.WriteLine("Goodbye!");
                        Environment.Exit(0);
                    }

                    else
                    {
                        Console.WriteLine("Invalid selection.");
                    }
                }

                catch (Exception ex)
                {
                    Console.WriteLine("Error - " + ex.Message);
                }
            }
        }
Ejemplo n.º 2
0
        private void ShowMainMenu()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine();
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else
                {
                    switch (menuSelection)
                    {
                    case 1:
                        DisplayAccountBalance();
                        break;

                    case 2:
                        DisplayListOfTransfers();
                        break;

                    case 3:
                        DisplayListOfPendingTransfers();
                        break;

                    case 4:
                        DisplayListOfUsers();
                        CreateNewTransfer();
                        break;

                    case 5:
                        RequestTransfer();     // TODO: revise and finish request transfer method
                        break;

                    case 6:
                        UserService.SetLogin(new API_User());     //wipe out previous login info
                        ShowLogInMenu();
                        return;

                    default:
                        Console.WriteLine("Goodbye!");
                        shouldExit = true;
                        return;
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private static void Run()
        {
            while (true)
            {
                int loginRegister = -1;
                while (loginRegister != 1 && loginRegister != 2)
                {
                    Console.Clear();
                    Console.WriteLine("Welcome to TEnmo!");
                    Console.WriteLine("1: Login");
                    Console.WriteLine("2: Register");
                    Console.WriteLine("0: Exit");
                    Console.Write("Please choose an option: ");

                    if (!int.TryParse(Console.ReadLine(), out loginRegister))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }
                    else if (loginRegister == 0)
                    {
                        Environment.Exit(0);
                    }
                    else if (loginRegister == 1)
                    {
                        while (!UserService.IsLoggedIn()) //will keep looping until user is logged in
                        {
                            LoginUser loginUser = consoleService.PromptForLogin();
                            API_User  user      = authService.Login(loginUser);
                            if (user != null)
                            {
                                UserService.SetLogin(user);
                                apiService = new ApiService();
                            }
                        }
                    }
                    else if (loginRegister == 2)
                    {
                        bool isRegistered = false;
                        while (!isRegistered) //will keep looping until user is registered
                        {
                            LoginUser registerUser = consoleService.PromptForLogin();
                            isRegistered = authService.Register(registerUser);
                            if (isRegistered)
                            {
                                Console.WriteLine("");
                                Console.WriteLine("Registration successful. You can now log in.");
                                loginRegister = -1; //reset outer loop to allow choice for login
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("Invalid selection.");
                    }
                }

                MenuSelection();
            }
        }
Ejemplo n.º 4
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                }
                else if (menuSelection == 2)
                {
                }
                else if (menuSelection == 3)
                {
                }
                else if (menuSelection == 4)
                {
                }
                else if (menuSelection == 5)
                {
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else if (menuSelection == 7)
                {
                    Console.WriteLine("magic easter egg to get the count of users");
                    Console.WriteLine(apiService.GetCountUsers());
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 5
0
 private void HandleUserLogin()
 {
     while (!UserService.IsLoggedIn) //will keep looping until user is logged in
     {
         LoginUser loginUser = consoleService.PromptForLogin();
         API_User  user      = authService.Login(loginUser);
         if (user != null)
         {
             UserService.SetLogin(user);
         }
     }
 }
Ejemplo n.º 6
0
        private void HandleUserLogin()
        {
            while (!UserService.IsLoggedIn) //will keep looping until user is logged in
            {
                Console.Clear();
                Console.WriteLine();
                Console.WriteLine("Welcome to TEnmo! Please login:");
                Console.WriteLine();

                LoginUser loginUser = consoleService.PromptForLogin();

                API_User user = authService.Login(loginUser);
                if (user != null)
                {
                    UserService.SetLogin(user);
                    this.accountService.UpdateToken(user.Token);
                    Console.Clear();

                    //will put the method to update token into the service class we create
                }
            }
        }
Ejemplo n.º 7
0
        //menu to navigave application
        private void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");   //view details through here
                Console.WriteLine("3: View your pending requests"); //ability to approve/reject through here
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: View list of users");
                Console.WriteLine("7: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                try
                {
                    if (!int.TryParse(Console.ReadLine(), out menuSelection))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }
                    //Show account balance
                    else if (menuSelection == 1)
                    {
                        Account usersAccount = accountsAPIService.GetUsersAccount();
                        Console.WriteLine($"\nYour current Account balance is {usersAccount.AccountBalance} TE bucks.");
                    }
                    //view past transfers
                    else if (menuSelection == 2)
                    {
                        List <Transfer> transfers = transfersAPIService.GetTransfersForUser();
                        if (transfers.Count == 0)
                        {
                            Console.WriteLine("No transfers to display.");
                        }
                        else
                        {
                            DisplayUsersTransfers(transfers);
                            TransferDetailsMenu(transfers);
                        }
                    }
                    //view pending transfers
                    else if (menuSelection == 3)
                    {
                        List <Transfer> pendingTransfers = transfersAPIService.GetPendingTransfersForUser();
                        if (pendingTransfers.Count == 0)
                        {
                            Console.WriteLine("No pending transfers to display.");
                        }
                        else
                        {
                            DisplayUsersTransfers(pendingTransfers);
                            selectPendingTransferMenu(pendingTransfers);
                        }
                    }
                    //Send TE bucks to a user
                    else if (menuSelection == 4)
                    {
                        SendTeBucks();
                    }
                    //Request TE bucks from a user
                    else if (menuSelection == 5)
                    {
                        DisplayUsers();
                        List <API_User> users = accountsAPIService.GetUsers();
                        RequestTeBucksMenu(users);
                    }
                    //show list of users
                    else if (menuSelection == 6)
                    {
                        DisplayUsers();
                    }
                    //change logged in user
                    else if (menuSelection == 7)
                    {
                        Console.WriteLine("");
                        UserService.SetLogin(new API_User()); //wipe out previous login info
                        return;                               //return to register/login menu
                    }
                    //exit menu
                    else if (menuSelection == 0)
                    {
                        Console.WriteLine("Goodbye!");
                        Environment.Exit(0);
                    }

                    else
                    {
                        Console.WriteLine("Please try again");
                        Console.WriteLine();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error - " + ex.Message);
                    Console.WriteLine();
                }
            }
        }
Ejemplo n.º 8
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    decimal balance = api.GetBalance();
                    if (balance >= 0)
                    {
                        Console.WriteLine($"Your account balance is: ${balance}");
                    }
                }
                else if (menuSelection == 2)
                {
                    List <Transfer> transferHistory = api.GetTransfers();

                    if (transferHistory != null && transferHistory.Count > 0)
                    {
                        consoleService.PrintTransfer(transferHistory);
                    }
                    Console.WriteLine($"Please enter transfer ID to view details (0 to cancel):");
                    if (!int.TryParse(Console.ReadLine(), out int transferSelection))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }
                    if (transferSelection > 0)
                    {
                        Transfer transferDetails = api.GetTransferDetails(transferSelection);
                        consoleService.PrintTransferDetails(transferDetails);
                    }
                    else if (transferSelection == 0)
                    {
                        MenuSelection();
                    }

                    // Pulls list with all transfers relating to user THEN hase menu to look at details of each transfer  (5 & 6 From sample Screen)
                }
                else if (menuSelection == 3)
                {
                    // Is part of optional use cases ( Step 8 on ReadMe )
                }
                else if (menuSelection == 4)
                {
                    List <Users> users = api.GetUsers();
                    if (users != null && users.Count > 0)
                    {
                        consoleService.PrintUsers(users);
                    }

                    Console.WriteLine("Enter ID of user you are sending to(0 to cancel):");

                    if (!int.TryParse(Console.ReadLine(), out int userSelection))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }

                    Console.WriteLine("Enter amount: ");

                    if (!decimal.TryParse(Console.ReadLine(), out decimal amountToSend))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }
                    Transfer transfer = new Transfer
                    {
                        TransferTypeId   = 2,
                        TransferStatusId = 2,
                        AccountFrom      = UserService.GetUserId(),
                        AccountTo        = userSelection,
                        Amount           = amountToSend
                    };

                    api.UpdateUserBalance(transfer);
                    api.UpdateRecieverBalance(transfer);

                    if (api.TransferRequest(transfer))
                    {
                        Console.WriteLine("Ya boi got his money");
                    }
                    else
                    {
                        Console.WriteLine("YOU ARE A FAILURE!");
                    }
                }
                else if (menuSelection == 5)
                {
                    // Is part of option use cases ( Step 7 on the ReadMe )
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 9
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    Account accounts = api.GetBalance();
                    Console.Write("Your current balance is: $" + accounts.Balance + ".");
                }
                else if (menuSelection == 2)
                {
                    Transfer        transaction = new Transfer();
                    int             id          = UserService.GetUserId();
                    List <Transfer> transfers   = api.GetTransactionsByID(id);
                    foreach (Transfer transfer in transfers)
                    {
                        Console.WriteLine(transfer.AccountFrom + transfer.AccountTo + transfer.Amount + transfer.TransferId);
                    }
                }
                else if (menuSelection == 3)
                {
                }
                else if (menuSelection == 4)
                {
                    List <User> newUser = api.GetUsers();
                    foreach (User users in newUser)
                    {
                        Console.WriteLine(users.UserId.ToString() + " " + users.Username);
                    }
                    Program.Transaction();
                }
                else if (menuSelection == 5)
                {
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 10
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    Console.WriteLine("Your current balance is: $" + API_BASE_URL.GetBalance());
                }
                else if (menuSelection == 2)
                {
                    PrintTransferDetails(API_BASE_URL.GetListOfTransfers());//list user's names
                }
                else if (menuSelection == 3)
                {
                    PrintPendingRequests(API_BASE_URL.GetPendingTransfers());
                    List <int> pendingTransferIds = new List <int>();
                    foreach (Transfer t in API_BASE_URL.GetPendingTransfers())
                    {
                        pendingTransferIds.Add(t.TransferId);
                    }
                    int transferId = PromptForTransferId(pendingTransferIds);
                    if (transferId != 0)
                    {
                        int acceptOrReject = AcceptReject();
                        if (acceptOrReject == 1)
                        {
                            API_BASE_URL.ReceivePendingRequest(transferId);
                        }
                        else if (acceptOrReject == 2)
                        {
                            API_BASE_URL.RejectTransferRequest(transferId);
                        }
                    }
                }
                else if (menuSelection == 4)
                {
                    PrintTEBucks(API_BASE_URL.GetUsers());
                    int     id     = PromptForUserIDSelection();
                    decimal amount = 0;
                    if (id != 0)
                    {
                        amount = PromptForAmountSelection();
                    }
                    API_BASE_URL.TransferFunds(id, amount);
                }
                else if (menuSelection == 5)
                {
                    PrintTEBucks(API_BASE_URL.GetUsers());
                    int     id     = PromptForUserIDSelection();
                    decimal amount = 0;
                    if (id != 0)
                    {
                        amount = PromptForAmountSelection();
                        API_BASE_URL.RequestMoney(id, amount);
                    }
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 11
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    decimal?balance = apiService.GetAccountBalance();

                    if (balance != null)
                    {
                        decimal balanceAmount = (decimal)balance;
                        Console.WriteLine($"Here's your account balance: {balanceAmount.ToString("C2")}");
                    }
                }
                else if (menuSelection == 2)
                {
                    List <API_Transfer> transfers = apiService.GetTransfers();
                    if (transfers == null)
                    {
                        continue;
                    }

                    consoleService.PrintAllTransfers(transfers);

                    int chosenID = consoleService.PromptForTransferID("get details");

                    Func <API_Transfer, bool> search = t => t.TransferID == chosenID;

                    if (transfers.Any(search))
                    {
                        API_Transfer transfer = transfers.Single(search);

                        consoleService.PrintTransferDetails(transfer);
                    }
                    else if (chosenID != 0)
                    {
                        Console.WriteLine("The transfer ID you requested does not exist.");
                    }
                }
                else if (menuSelection == 3)
                {
                    List <API_Transfer> transfers = apiService.GetTransfers();
                    if (transfers == null)
                    {
                        continue;
                    }

                    consoleService.PrintPendingTransfers(transfers);
                    int chosenID = consoleService.PromptForTransferID("approve or reject request");
                    int approvalOption;

                    List <API_Transfer>       pendingTransfers = transfers.Where(t => t.TransferStatus == TransferStatus.Pending).ToList();
                    Func <API_Transfer, bool> search           = t => t.TransferID == chosenID;

                    if (pendingTransfers.Any(search))
                    {
                        API_Transfer pendingTransfer = pendingTransfers.Single(search);
                        approvalOption = consoleService.PromptForApproval();
                        apiService.UpdateTransferStatus(pendingTransfer, approvalOption);
                    }
                    else if (chosenID != 0)
                    {
                        Console.WriteLine("The transfer ID you requested does not exist.");
                    }
                }
                else if (menuSelection == 4)
                {
                    List <API_User> users = apiService.GetOtherUsers();
                    if (users == null)
                    {
                        continue;
                    }

                    consoleService.PrintUsers(users);
                    TransferType transferType = TransferType.Send;
                    API_Transfer transfer     = consoleService.PromptForTransferRequest(transferType);

                    if (!users.Any(u => u.UserId == transfer.ToUserID))
                    {
                        Console.WriteLine("The user ID you requested does not exist.");
                        continue;
                    }

                    transfer.ToUserName = users.First(u => u.UserId == transfer.ToUserID)?.Username;
                    apiService.SubmitTransferRequest(transfer);
                }
                else if (menuSelection == 5)
                {
                    List <API_User> users = apiService.GetOtherUsers();
                    if (users == null)
                    {
                        continue;
                    }

                    consoleService.PrintUsers(users);
                    TransferType transferType = TransferType.Request;
                    API_Transfer transfer     = consoleService.PromptForTransferRequest(transferType);

                    if (!users.Any(u => u.UserId == transfer.FromUserID))
                    {
                        Console.WriteLine("The user ID you requested does not exist.");
                        continue;
                    }

                    transfer.FromUserName = users.First(u => u.UserId == transfer.FromUserID).Username;
                    apiService.SubmitTransferRequest(transfer);
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 12
0
        private static void MenuSelection()
        {
            int userID        = UserService.GetUserId();
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    decimal balance = accountService.GetAccount(userID).Balance;
                    Console.WriteLine($"Your current account balance is: ${balance}");
                }
                else if (menuSelection == 2)
                {
                    int newSelection;
                    List <API_Transfer> transfers = transferService.ListTransfers(userID);
                    Console.WriteLine("--------------------------------------");
                    Console.WriteLine("Transfers");
                    Console.WriteLine("ID\tFrom/To\tAmount");
                    Console.WriteLine("--------------------------------------");
                    foreach (API_Transfer transfer in transfers)
                    {
                        if (transfer.AccountFrom == userID)
                        {
                            Console.WriteLine($"{transfer.TransferID}\tTo:\t{transfer.UserToName}\t$\t{transfer.Amount}");
                        }
                        else
                        {
                            Console.WriteLine($"{transfer.TransferID}\tFrom:\t{transfer.UserFromName}\t$\t{transfer.Amount}");
                        }
                    }
                    Console.WriteLine("--------------------------------------");
                    Console.WriteLine("Please enter transfer ID to view details (0 to cancel): ");
                    while (!int.TryParse(Console.ReadLine(), out newSelection))
                    {
                        Console.WriteLine("Invalid input please enter only a valid number.");
                    }
                    if (newSelection != 0)
                    {
                        API_Transfer transfer = transferService.GetTransfer(newSelection);
                        Console.WriteLine("--------------------------------------");
                        Console.WriteLine("Transfer Details");
                        Console.WriteLine("--------------------------------------");
                        Console.WriteLine($"Id: {transfer.TransferID}");
                        Console.WriteLine($"From:  {transfer.UserFromName}");
                        Console.WriteLine($"To:  {transfer.UserToName}");
                        Console.WriteLine($"Type: {transfer.TransferType}");
                        Console.WriteLine($"Status:  {transfer.TransferStatus}");
                        Console.WriteLine($"Amount:  ${transfer.Amount}");
                        Console.WriteLine("--------------------------------------");
                    }
                }
                else if (menuSelection == 3)
                {
                    int newSelection;
                    List <API_Transfer> transfers = transferService.ListPendingTransfers(userID);
                    Console.WriteLine("--------------------------------------");
                    Console.WriteLine("Pending Transfers");
                    Console.WriteLine("ID\tTo\tAmount");
                    Console.WriteLine("--------------------------------------");
                    foreach (API_Transfer transfer in transfers)
                    {
                        Console.WriteLine($"{transfer.TransferID}\t{transfer.UserToName}\t${transfer.Amount}");
                        Console.WriteLine("--------------------------------------");
                    }
                    Console.WriteLine("Please enter transfer ID to approve/reject (0 to cancel): ");
                    while (!int.TryParse(Console.ReadLine(), out newSelection))
                    {
                        Console.WriteLine("Invalid input please enter only a valid number.");
                    }
                    if (newSelection != 0)
                    {
                        int          approveOrReject;
                        API_Transfer transfer = transferService.GetTransfer(newSelection);
                        Console.WriteLine("1: Approve");
                        Console.WriteLine("2: Reject");
                        Console.WriteLine("0: Don't approve or reject");
                        Console.WriteLine("--------------------------------------");
                        Console.WriteLine("Please choose an option: ");
                        while (!int.TryParse(Console.ReadLine(), out approveOrReject))
                        {
                            Console.WriteLine("Invalid input please enter only a valid number.");
                        }
                        if (approveOrReject == 1)
                        {
                            API_Account accountFrom = accountService.GetAccount(transfer.AccountFrom);
                            if (transfer.Amount < accountFrom.Balance)
                            {
                                transfer             = transferService.UpdateTransfer(transfer, 2);
                                accountFrom.Balance -= transfer.Amount;
                                accountService.UpdateBalance(accountFrom);

                                API_Account accountTo = accountService.GetAccount(transfer.AccountTo);
                                accountTo.Balance += transfer.Amount;
                                accountService.UpdateBalance(accountTo);
                                Console.WriteLine("Transfer approved!");
                            }
                            else
                            {
                                Console.WriteLine("You do not have enough money to approve this transfer");
                            }
                        }
                        else if (approveOrReject == 2)
                        {
                            transfer = transferService.UpdateTransfer(transfer, 3);
                            Console.WriteLine("Transfer rejected!");
                        }
                    }
                }
                else if (menuSelection == 4)
                {
                    API_Account  accountFrom = accountService.GetAccount(userID);
                    API_Transfer transfer    = consoleService.PromptForUserToTransfer(userID, accountFrom.Balance);

                    if (transfer != null)
                    {
                        transferService.SendTransfer(transfer);

                        accountFrom.Balance -= transfer.Amount;
                        accountService.UpdateBalance(accountFrom);

                        API_Account accountTo = accountService.GetAccount(transfer.AccountTo);
                        accountTo.Balance += transfer.Amount;
                        accountService.UpdateBalance(accountTo);
                        Console.WriteLine("Transfer successful");
                    }
                }
                else if (menuSelection == 5)
                {
                    API_Account  accountTo = accountService.GetAccount(userID);
                    API_Transfer transfer  = consoleService.PromptForUserToRequestTransfer(userID);

                    if (transfer != null)
                    {
                        transferService.SendTransfer(transfer);
                        Console.WriteLine("Transfer pending");
                    }
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 13
0
        private static void MenuSelection()
        {
            bool showBalance   = false;
            bool inMenu        = true;
            int  menuSelection = -1;

            while (inMenu)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                if (showBalance == true)
                {
                    decimal balance = accountService.GetBalance(UserService.GetUserId());
                    Console.WriteLine($"Your account balance is: {balance:C2}");
                }
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.Clear();
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    showBalance = true;
                    Console.Clear();
                }
                else if (menuSelection == 2)
                {
                    ViewTransfers();
                }
                else if (menuSelection == 3)
                {
                    GetPendingTransfers();
                }
                else if (menuSelection == 4)
                {
                    SendMoney();
                }
                else if (menuSelection == 5)
                {
                    RequestTransfer();
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else if (menuSelection == 0)
                {
                    Console.WriteLine("Goodbye!");
                    inMenu = false;
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 14
0
        private void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");   //view details through here
                Console.WriteLine("3: View your pending requests"); //ability to approve/reject through here
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: View list of users");
                Console.WriteLine("7: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                try
                {
                    if (!int.TryParse(Console.ReadLine(), out menuSelection))
                    {
                        Console.WriteLine("Invalid input. Please enter only a number.");
                    }
                    else if (menuSelection == 1)
                    {
                        ViewBalance();
                    }
                    else if (menuSelection == 2)
                    {
                        //todo view past transfers method
                        ListTransfers();
                    }
                    else if (menuSelection == 3)
                    {
                        //todo CODE CODE CODE
                    }
                    else if (menuSelection == 4)
                    {
                        SendTEBucks();
                    }
                    else if (menuSelection == 5)
                    {
                        //todo request TE bucks method
                    }
                    else if (menuSelection == 6)
                    {
                        ListUsers();
                    }
                    else if (menuSelection == 7)
                    {
                        Console.WriteLine("");
                        UserService.SetLogin(new API_User()); //wipe out previous login info
                        return;                               //return to register/login menu
                    }
                    else if (menuSelection == 0)
                    {
                        Console.WriteLine("Goodbye!");
                        Environment.Exit(0);
                    }

                    else
                    {
                        Console.WriteLine("Please try again");
                        Console.WriteLine();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error - " + ex.Message);
                    Console.WriteLine();
                }
            }
        }
Ejemplo n.º 15
0
        private static void MenuSelection()
        {
            AccountService accountService = new AccountService();
            int            menuSelection  = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                    menuSelection = -1;
                }
                else if (menuSelection == 1)
                {
                    Console.WriteLine($"\nYour current account balance is {accountService.GetAccountBalance():C}\n");
                }
                else if (menuSelection == 2)
                {
                    accountService.ListAllTransfers();
                }
                else if (menuSelection == 3)
                {
                    Console.WriteLine("Sorry, under construction!");
                    MenuSelection();
                }
                else if (menuSelection == 4)
                {
                    //TODO: format (padding)
                    Console.WriteLine("User ID      Username");
                    accountService.DisplayUsers();
                    Console.WriteLine("Please enter the ID of the user you'd like to transfer to:");
                    int toUserID = int.Parse(Console.ReadLine());   //hold toUserID variable
                    if (!accountService.ConfirmRecipient(toUserID)) //make sure the to_account_id exists
                    {
                        Console.WriteLine("\nSorry, that USER ID does not exist.\n");
                        //TODO: return user to this menu, not the main menu.
                        MenuSelection();
                    }
                    else if (toUserID == UserService.GetUserId())
                    {
                        Console.WriteLine("\nSorry, you cannot send money to yourself!\n");

                        MenuSelection();
                    }
                    Console.WriteLine("\nPlease enter the amount you would like to send:");
                    decimal amount = decimal.Parse(Console.ReadLine());  //make sure the from_account has enough funds and hold amount variable
                    if (accountService.GetAccountBalance() < amount)
                    {
                        Console.WriteLine("\nSorry, you don't have enough funds.\n");

                        MenuSelection();
                    }
                    Transfer newTransfer = new Transfer(UserService.GetUserId(), toUserID, amount);
                    accountService.CompleteTransfer(newTransfer);
                }
                else if (menuSelection == 5)
                {
                    Console.WriteLine("Sorry, under construction!");
                    MenuSelection();
                }
                else if (menuSelection == 6)
                {
                    // Log in as different user
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    return;                               //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 16
0
        private void ShowMainMenu()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine();
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else
                {
                    switch (menuSelection)
                    {
                    case 1:
                        GetBalance(authService.userId);
                        break;

                    case 2:


                        GetTransfersByUserId(authService.userId);
                        Console.WriteLine("Please enter the Transfer ID you'd like to see:");
                        int inputTransferId = Convert.ToInt32(Console.ReadLine());
                        GetTransferById(inputTransferId);



                        break;

                    case 3:
                        Console.WriteLine("NOT IMPLEMENTED!");     // TODO: Implement me
                        break;

                    case 4:
                        GetUsers();
                        Console.WriteLine();
                        Console.WriteLine("Please input the userID of the user you would like to send money to: ");
                        int sendToUserId = Convert.ToInt32(Console.ReadLine());
                        Console.WriteLine("How many TE bucks would you like to send?");
                        decimal moneyAmount = Convert.ToDecimal(Console.ReadLine());

                        AddTransfer(authService.userId, sendToUserId, moneyAmount);

                        break;

                    case 5:
                        Console.WriteLine("NOT IMPLEMENTED!");     // TODO: Implement me
                        break;

                    case 6:
                        Console.WriteLine();
                        UserService.SetLogin(new API_User());     //wipe out previous login info
                        return;

                    default:
                        Console.WriteLine("Goodbye!");
                        shouldExit = true;
                        return;
                    }
                }
            }
        }
Ejemplo n.º 17
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    double balance = accountService.GetBalance();
                    consoleService.PrintBalance(balance);
                    MenuSelection();
                }
                else if (menuSelection == 2)
                {
                    List <TransferClient> transfers = transferService.GetTransfers();
                    consoleService.PrintTransfers(transfers);
                    int id = -1;
                    while (id == -1)
                    {
                        id = consoleService.PromptForTransferID("view");
                        if (id == 0)
                        {
                            MenuSelection();
                        }
                    }
                    consoleService.PrintTransferDetails(id, transfers);
                    MenuSelection();
                }
                else if (menuSelection == 3)
                {
                    List <TransferClient> transfers = transferService.GetPendingTransfers();
                    consoleService.PrintPendingTransfers(transfers);
                    if (transfers.Count != 0)
                    {
                        int id = -1;
                        while (id == -1)
                        {
                            id = consoleService.PromptForTransferID("approve or reject");
                            if (id == 0)
                            {
                                MenuSelection();
                            }
                        }
                        int newStatus = consoleService.PromptForApproval();
                        if (newStatus == 0)
                        {
                            MenuSelection();
                        }
                        double         currentBalance = accountService.GetBalance();
                        TransferClient returnTransfer = transferService.UpdateTransfer(id, transfers, newStatus, currentBalance);
                        if (returnTransfer != null)
                        {
                            consoleService.PrintResult(returnTransfer.Status);
                        }
                    }
                    MenuSelection();
                }
                else if (menuSelection == 4)
                {
                    List <UserDTO> list = accountService.GetUsers();
                    consoleService.PrintUsers(list);
                    int id = -1;
                    while (id == -1)
                    {
                        id = consoleService.PromptForUserId(list, "send to");
                        if (id == 0)
                        {
                            MenuSelection();
                        }
                    }
                    double amount = -1;
                    while (amount == -1)
                    {
                        amount = consoleService.PromptForAmount("send");
                        if (amount == 0)
                        {
                            MenuSelection();
                        }
                    }
                    if (amount > accountService.GetBalance())
                    {
                        Console.WriteLine("\nYou don't have enough money to transfer.");
                        MenuSelection();
                    }
                    TransferClient returnTransfer = transferService.SendTransfer(id, amount);
                    if (returnTransfer != null)
                    {
                        consoleService.PrintResult(returnTransfer.Status);
                    }
                    MenuSelection();
                }
                else if (menuSelection == 5)
                {
                    List <UserDTO> list = accountService.GetUsers();
                    consoleService.PrintUsers(list);
                    int id = -1;
                    while (id == -1)
                    {
                        id = consoleService.PromptForUserId(list, "request from");
                        if (id == 0)
                        {
                            MenuSelection();
                        }
                    }
                    double amount = -1;
                    while (amount == -1)
                    {
                        amount = consoleService.PromptForAmount("request");
                        if (amount == 0)
                        {
                            MenuSelection();
                        }
                    }
                    TransferClient pendingTransfer = transferService.RequestTransfer(id, amount);
                    if (pendingTransfer != null)
                    {
                        consoleService.PrintResult(pendingTransfer.Status);
                    }
                    MenuSelection();
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 18
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");   //view details through here
                Console.WriteLine("3: View your pending requests"); //ability to approve/reject through here
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    decimal balance = apiService.GetBalance();
                    if (balance != decimal.MinValue)
                    {
                        Console.WriteLine("Your TE bucks balance is " + balance.ToString("C"));
                    }
                }
                else if (menuSelection == 2)
                {
                    List <Transfer> transfers = apiService.GetTransfers();
                    if (transfers != null)
                    {
                        consoleService.PrintTransfers(transfers);
                        if (transfers.Count > 0)
                        {
                            int transferId = consoleService.PromptForTransferID("view");
                            if (transferId > 0)
                            {
                                Transfer transfer = apiService.GetTransfer(transferId);
                                if (transfer != null)
                                {
                                    consoleService.PrintTransfer(transfer);
                                }
                            }
                        }
                    }
                }
                else if (menuSelection == 3)
                {
                    List <Transfer> transfers = apiService.GetPendingTransfers();
                    if (transfers != null)
                    {
                        consoleService.PrintTransfers(transfers);
                        if (transfers.Count > 0)
                        {
                            string choice = consoleService.PromptForApproveOrReject();
                            if (choice != null)
                            {
                                int transferId = consoleService.PromptForTransferID(choice);
                                if (transferId > 0)
                                {
                                    if (choice == "approve")
                                    {
                                        Transfer transfer = apiService.ApproveTransfer(transferId);
                                        if (transfer.TransferStatus == TransferStatus.Approved)
                                        {
                                            Console.WriteLine("Approval was successful");
                                            consoleService.PrintTransfer(transfer);
                                        }
                                        else
                                        {
                                            Console.WriteLine("Approval was not successful");
                                        }
                                    }
                                    else if (choice == "reject")
                                    {
                                        Transfer transfer = apiService.RejectTransfer(transferId);
                                        if (transfer.TransferStatus == TransferStatus.Rejected)
                                        {
                                            Console.WriteLine("Rejection was successful");
                                            consoleService.PrintTransfer(transfer);
                                        }
                                        else
                                        {
                                            Console.WriteLine("Rejection was not successful");
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                else if (menuSelection == 4)
                {
                    NewTransfer newTransfer = consoleService.PromptForTransfer(TransferType.Send);
                    if (newTransfer != null)
                    {
                        Transfer addedTransfer = apiService.AddTransfer(newTransfer);

                        if (addedTransfer != null)
                        {
                            consoleService.PrintTransfer(addedTransfer);
                        }
                    }
                }
                else if (menuSelection == 5)
                {
                    NewTransfer newTransfer = consoleService.PromptForTransfer(TransferType.Request);
                    if (newTransfer != null)
                    {
                        Transfer addedTransfer = apiService.AddTransfer(newTransfer);

                        if (addedTransfer != null)
                        {
                            consoleService.PrintTransfer(addedTransfer);
                        }
                    }
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 19
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");
                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                switch (menuSelection)
                {
                case 1:
                    loggedInAccount = authService.GetAccount(loggedInUserId);
                    userBalance     = loggedInAccount.balance;
                    consoleService.PrintBalance(loggedInAccount);
                    break;

                case 2:
                    loggedInAccount = authService.GetAccount(loggedInUserId);
                    List <Data.Transfer> pastTransfers = authService.GetPastTransfers(loggedInAccount.accountId);
                    if (pastTransfers != null && pastTransfers.Count > 0)
                    {
                        consoleService.DisplayTransfers(pastTransfers);
                    }
                    Console.WriteLine("Please enter a transfer ID to view details(0 to cancel):");
                    int userInput = Convert.ToInt32(Console.ReadLine());

                    {
                        Data.Transfer transfer = authService.GetTransferDetails(userInput);
                        if (transfer != null)
                        {
                            consoleService.DisplayTransferDetails(transfer);
                        }
                    }
                    break;

                case 3:
                    break;

                case 4:
                    try
                    {
                        //print users to select recipient
                        List <API_User> users = authService.GetUsers();
                        consoleService.DisplayUsers(users);

                        //select user
                        Console.WriteLine("Input the UserId of the person who you want to send TEBucks:");
                        int      userId = Convert.ToInt32(Console.ReadLine());
                        API_User userTo = authService.GetUser(userId);

                        //input amount
                        Console.WriteLine($"Input the amount you want to send to {userTo.Username}:");
                        decimal amount = Convert.ToDecimal(Console.ReadLine());

                        //verify amount < account balance
                        amount = consoleService.VerifyAccountBalancePrompt(userBalance, amount, userTo.Username);
                        if (amount < 0)
                        {
                            break;
                        }
                        consoleService.DisplaySendTransfer(amount, userTo.Username);
                        //Confirm transfer is still wanted
                        Console.WriteLine("Confirm Transfer? Y/N");
                        string response = Console.ReadLine().ToLower();
                        if (response != "y")
                        {
                            break;
                        }
                        else
                        {
                            //create transfer (transfer contains (userIdFrom, userIdTo, amount, transfer type = 2)
                            Data.Account  accountFrom = authService.GetAccount(loggedInUserId);
                            Data.Account  accountTo   = authService.GetAccount(userTo.UserId);
                            Data.Transfer newTransfer = new Data.Transfer(2, 2, accountFrom.accountId, accountTo.accountId, amount);
                            if (newTransfer != null)
                            {
                                Data.Transfer addedTransfer = authService.CreateTransfer(newTransfer);
                                if (addedTransfer != null)
                                {
                                    //receiver balance increased by amount
                                    //sender balance decreased by amount
                                    accountFrom = authService.UpdateAccount(loggedInUserId, (accountFrom.balance - amount));
                                    accountTo   = authService.UpdateAccount(userTo.UserId, (accountTo.balance + amount));
                                    Console.WriteLine("Transfer Completed.");
                                }
                                else
                                {
                                    Console.WriteLine("There was a error completing your transfer.");
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("You entered an invalid Response. Please try again.");
                    }
                    break;

                case 5:
                    //print users to select user for request
                    //select user
                    //input amount requested (transfer contains (userIdFrom, userIdTo, amount) transfer type = 1
                    //transferStatus = Pending(1)
                    //userFrom approve/deny request
                    //verify amount < userFrom account balance
                    //reciever balance increased by amount
                    //sender balance decreased by amount
                    //TransferStatus changed to Approved or Rejected
                    break;

                case 6:
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                    break;

                case 0:
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                    break;

                default:
                    Console.WriteLine("Please enter a number from the list displayed.");
                    break;
                }
            }
        }
Ejemplo n.º 20
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                //Console.Clear();
                PrintLogo();
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.Clear();
                    Console.WriteLine("Invalid input. Please enter only a number.");
                    SomethingWentWrong();
                    Console.Clear();
                    MenuSelection();
                }
                else if (menuSelection == 1)
                {
                    PrintBalance();
                }
                else if (menuSelection == 2)
                {
                    ViewAllTransfers();
                }
                else if (menuSelection == 3)
                {
                    PendingTransfersMenu();
                }
                else if (menuSelection == 4)
                {
                    SendMoney();
                    // send money
                }
                else if (menuSelection == 5)
                {
                    RequestMoney();
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Console.Clear();
                    LoggingOut();
                    System.Threading.Thread.Sleep(2000);
                    Console.Clear();
                    Run(); //return to entry point
                }
                else
                {
                    Console.Clear();
                    LoggingOut();
                    System.Threading.Thread.Sleep(2000);
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 21
0
        private static void Run()
        {
            int loginRegister = -1;

            while (loginRegister != 1 && loginRegister != 2)
            {
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write(@"
  ██████████████████████████████████████████████████████████████████████████████████████
 █████▀▄▄▓████▓▄▄▀███████████████████████████████████████████████████████████████████████ 
▐███▀▄█████▌▀█████▄▀███▀       ╙███    ╙      ╙███    ╙`     ▀       █████╜       ╙██████▌
▐██ ██████▀  ▀██████▐▌    ,╗    ▐█▌            ██▌                   j██`           █████▌
▐██ █████╝ ██ ▐█████▌▓   ª▀╙    ██     ▓██     ██     ▓██     ██     ▐█     ╔██     ▐████▌
▐██ ████╜⌐ ,,  ╙████▌▓      ,╓▄███     ██▌    ]██     ██▌    ]██     ██     ███     ▐████▌
▐██ ███▌ ▄████▌ ▐███╒    ▀████▀██▌    ]██     ██▌    ╒██     ███     ██     ██▀     █████▌
▐███▄▀████████████▀▄█          ██     ███     ██     ▓██     ██     ▐██,          ╓██████▌
▐█████▄▀▀██████▀▀▄████▄,,,,,,╓▄██,,,,,██▌,,,,▐██,,,,,██▌,,,,▐██,,,,,████▄,    ,,▄████████▌
 ████████▓▓▓▓████████████████████████████████████████████████████████████████████████████
  ██████████████████████████████████████████████████████████████████████████████████████
");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("\t\t\t\t\t\t\t\tChris McAfee & Juan Leon\n");
                Console.WriteLine("Welcome to TEnmo!");
                Console.WriteLine("1: Login");
                Console.WriteLine("2: Register");
                Console.Write("Please choose an option: ");



                if (!int.TryParse(Console.ReadLine(), out loginRegister))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (loginRegister == 1)
                {
                    while (!UserService.IsLoggedIn()) //will keep looping until user is logged in
                    {
                        LoginUser loginUser = consoleService.PromptForLogin();
                        API_User  user      = authService.Login(loginUser);
                        if (user != null)
                        {
                            UserService.SetLogin(user);
                        }
                    }
                }
                else if (loginRegister == 2)
                {
                    bool isRegistered = false;
                    while (!isRegistered) //will keep looping until user is registered
                    {
                        LoginUser registerUser = consoleService.PromptForLogin();
                        isRegistered = authService.Register(registerUser);
                        if (isRegistered)
                        {
                            Console.WriteLine("");
                            Console.WriteLine("Registration successful. You can now log in.");
                            loginRegister = -1; //reset outer loop to allow choice for login
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Invalid selection.");
                }
            }

            MenuSelection();
        }
Ejemplo n.º 22
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                menuSelection = CLIHelper.GetNumberInRange(0, 6);

                if (menuSelection == 1)
                {
                    Account account = apiService.GetAccount();
                    if (account != null)
                    {
                        Console.WriteLine($"Your current account balance is: {account.Balance.ToString("C2")}");
                    }
                }
                else if (menuSelection == 2)
                {
                    List <TransferWithDetails> transferHistory = apiService.GetTransferHistory();
                    var allTransferIDs = new List <int>();
                    allTransferIDs.Add(0);
                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine("Transfer IDs         From/To         Amount");
                    Console.WriteLine("-------------------------------------------");
                    foreach (var item in transferHistory)
                    {
                        if (item.TransferId < 10)
                        {
                            if (item.FromUser == UserService.GetUsername())
                            {
                                Console.WriteLine($"0{item.TransferId}              To: {item.ToUser}             {item.Amount}");
                            }
                            else
                            {
                                Console.WriteLine($"0{item.TransferId}              From: {item.FromUser}             {item.Amount}");
                            }
                        }
                        else
                        {
                            if (item.FromUser == UserService.GetUsername())
                            {
                                Console.WriteLine($"{item.TransferId}              To: {item.ToUser}             {item.Amount}");
                            }
                            else
                            {
                                Console.WriteLine($"{item.TransferId}              From: {item.FromUser}             {item.Amount}");
                            }
                        }

                        allTransferIDs.Add(item.TransferId);
                    }
                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine("Please enter transfer ID to view details (0 to cancel):");
                    int transferId = CLIHelper.GetNumberInList(allTransferIDs);

                    if (transferId != 0)
                    {
                        TransferWithDetails transfer = apiService.GetTransferById(transferId);

                        Console.WriteLine("-------------------------------------------");
                        Console.WriteLine("Transfer details");
                        Console.WriteLine("-------------------------------------------");
                        Console.WriteLine($"ID: {transfer.TransferId}");
                        Console.WriteLine($"From: {transfer.FromUser}");
                        Console.WriteLine($"To: {transfer.ToUser}");
                        Console.WriteLine($"Type: {transfer.TransferType}");
                        Console.WriteLine($"Status: {transfer.TransferStatus}");
                        Console.WriteLine($"Amount: {transfer.Amount}");
                    }
                    else
                    {
                        Console.WriteLine("Returning to the main menu.");
                    }
                }
                else if (menuSelection == 3)
                {
                }
                else if (menuSelection == 4)
                {
                    List <API_User> users         = apiService.ListUsers();  // list users to select from
                    var             allUserIDs    = new List <int>();        // puts all users in list
                    int             currentUserId = UserService.GetUserId(); // gets current user id
                    users.RemoveAt(currentUserId - 1);                       // remove current user from list

                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine("User IDs     Names");
                    Console.WriteLine("-------------------------------------------");
                    foreach (var item in users) // display users
                    {
                        Console.WriteLine($"{item.UserId}           {item.Username}");
                        allUserIDs.Add(item.UserId);
                    }
                    Console.WriteLine("-------------------------------------------");
                    Console.WriteLine("Enter the ID of user you are sending to (0 to cancel):");
                    int receiverId = CLIHelper.GetNumberInList(allUserIDs); // make sure selection is in range

                    if (receiverId != 0)
                    {
                        Console.WriteLine("Enter amount to send:");
                        decimal             amount = CLIHelper.GetAmount();                    // in range method
                        TransferWithDetails result = apiService.SendMoney(receiverId, amount); // getting details from sendmoney & storing in "result"

                        if (result != null)
                        { // displaying transfer details
                            Console.WriteLine("Transfer successful! :)");
                            Console.WriteLine("-------------------------------------------");
                            Console.WriteLine("Transfer Details");
                            Console.WriteLine("-------------------------------------------");
                            Console.WriteLine($"ID: {result.TransferId}");
                            Console.WriteLine($"From: {result.FromUser}");
                            Console.WriteLine($"To: {result.ToUser}");
                            Console.WriteLine($"Type: {result.TransferType}");
                            Console.WriteLine($"Status: {result.TransferStatus}");
                            Console.WriteLine($"Amount: {result.Amount}");
                        }
                        else
                        {
                            Console.WriteLine("Transfer not completed");
                        }
                    }
                }
                else if (menuSelection == 5)
                {
                    Console.WriteLine("Feature unavailable. Returning to main menu."); // not implemented
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Thank you for using TEnmo. Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 23
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                    menuSelection = -1;
                }
                else if (menuSelection == 1)
                {
                    string output;
                    IRestResponse <decimal> response = accountService.GetBalance();
                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        output = $"Balance: {response.Data:c}";
                    }
                    else
                    {
                        output = "Unable to reach server.";
                    }
                    Console.WriteLine(output);
                }
                else if (menuSelection == 2)
                {
                    //view your past transfers
                    List <Transfer> transferList = accountService.GetPreviousTransfers();
                    if (transferList != null)
                    {
                        List <ReturnUser> userList = accountService.GetListOfUsers(); //get username
                        if (userList != null)
                        {
                            bool pending = false;
                            consoleService.PrintPreviousTransfers(transferList, userList, pending);
                            Transfer selectedTransfer = consoleService.ValidateTransferDetailsChoice(transferList, pending);
                            if (selectedTransfer != null)
                            {
                                consoleService.PrintTransferDetails(selectedTransfer, userList);
                            }
                            else
                            {
                                Console.WriteLine("Couldn't get transfer details.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Couldn't retreive User List while getting past transfers.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Couldn't get list of past transfers.");
                    }
                }
                else if (menuSelection == 3)
                {
                    //view your pending requests
                    List <Transfer> transferList = accountService.GetPreviousTransfers();
                    if (transferList != null)
                    {
                        List <ReturnUser> userList = accountService.GetListOfUsers();
                        if (userList != null)
                        {
                            bool pending = true;
                            consoleService.PrintPreviousTransfers(transferList, userList, pending);
                            Transfer selectedTransfer = consoleService.ValidateTransferDetailsChoice(transferList, pending);
                            if (selectedTransfer != null)
                            {
                                IRestResponse <decimal> response = accountService.GetBalance();
                                if (response.StatusCode != System.Net.HttpStatusCode.OK)
                                {
                                    Console.WriteLine("Unable to reach server.");
                                }
                                decimal balance    = response.Data;
                                int     userChoice = consoleService.ValidateApproveOrReject(selectedTransfer.amount, balance);

                                bool approved = userChoice == 1 ? true : false;

                                if (userChoice == 1 || userChoice == 2)
                                {
                                    //approve
                                    accountService.UpdateTransfer(selectedTransfer, approved);
                                }
                            }
                            else
                            {
                                Console.WriteLine("Couldn't get transfer details.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Couldn't retreive User List while getting past transfers.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Couldn't get list of past transfers.");
                    }
                }
                else if (menuSelection == 4)
                {
                    //sending TE Bucks
                    IRestResponse <decimal> response = accountService.GetBalance();
                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        decimal balance = response.Data;
                        //GetUserFromListOfUsers(list of users)
                        List <ReturnUser> userList = accountService.GetListOfUsers();
                        if (userList.Count != 0)
                        {
                            //pass the user list to Console Service(listOfUsers)  => This displays the list of users, prompts of a selection, returns the selected user
                            ReturnUser transferToThisUser = consoleService.GetValidUserFromList(userList, true);

                            if (transferToThisUser != null)
                            {
                                //verifytransferamount(fromUser)
                                decimal transferAmount = consoleService.GetValidTransferAmount(balance);
                                if (transferAmount != 0)
                                {
                                    //send te bucks to specified user
                                    Transfer transfer = consoleService.PopulateTransfer("Send", "Approved", transferToThisUser.UserId, UserService.GetUserId(), transferAmount);
                                    accountService.MakeTransfer(transfer);
                                }
                            }
                            else
                            {
                                Console.WriteLine("Unable to retreive User from List of Users while making a transfer");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Unable to get User List while making a transfer.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Unable to get balance.");
                    }
                }
                else if (menuSelection == 5)
                {
                    //request TE bucks
                    IRestResponse <decimal> response = accountService.GetBalance();
                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        //GetUserFromListOfUsers(list of users)
                        List <ReturnUser> userList = accountService.GetListOfUsers();
                        if (userList.Count != 0)
                        {
                            //pass the user list to Console Service(listOfUsers)  => This displays the list of users, prompts of a selection, returns the selected user
                            ReturnUser requestFromThisUser = consoleService.GetValidUserFromList(userList, false);

                            if (requestFromThisUser != null)
                            {
                                //verifytransferamount(fromUser)
                                decimal transferAmount = consoleService.GetValidTransferAmount();
                                if (transferAmount != 0)
                                {
                                    //send te bucks to specified user
                                    Transfer transfer = consoleService.PopulateTransfer("Request", "Pending", UserService.GetUserId(), requestFromThisUser.UserId, transferAmount);
                                    accountService.MakeTransfer(transfer);
                                }
                            }
                            else
                            {
                                Console.WriteLine("Unable to retreive User from List of Users while making a request");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Unable to get User List while making a request.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Unable to get balance.");
                    }
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 24
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");  //#3 use case - view current balance
                Console.WriteLine("2: View your past transfers");   //#5 & #6 use case - log to see past transfers sent/received
                Console.WriteLine("3: View your pending requests"); //#8 & #9 view pending requests and approve/reject
                Console.WriteLine("4: Send TE bucks");              //#4 use case - show list of users, enter userID to transfer to, call MakeTransfer method
                Console.WriteLine("5: Request TE bucks");           //#7 request a transfer
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)//view account balance
                {
                    PrintCurrentBalance();
                }
                else if (menuSelection == 2)//get list of past transfers and then transfer details based on the ID the user selects
                {
                    List <Transfer> t = PrintTransferList();
                    PrintDetailsForTransferId(t);
                }

                else if (menuSelection == 3)//view pending requests and approve/review
                {
                    List <Transfer> t        = PrintListOfRequests();
                    Transfer        transfer = SelectRequestBasedOnTransferID(t);
                    ApproveOrRejectRequest(transfer);
                }
                else if (menuSelection == 4)//send funds to user by ID
                {
                    PrintListOfUsers();
                    TransferFunds();
                }

                else if (menuSelection == 5)//log to see past transfers sent and received
                {
                    PrintListOfUsers();
                    RequestATransfer();
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 25
0
        private void ShowMainMenu()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine();
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests"); // not required
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");           // not required!!!
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else
                {
                    switch (menuSelection)
                    {
                    case 1:
                        GetBalance(UserService.Username);

                        break;

                    case 2:
                        GetListOfTransfers();

                        break;

                    case 3:
                        Console.WriteLine("NOT IMPLEMENTED!");     // TODO: Implement me
                        break;

                    case 4:
                        GetListOfUsers();
                        TransferMoney(UserService.Username);


                        break;

                    case 5:
                        Console.WriteLine("NOT IMPLEMENTED!");     // TODO: Implement me
                        break;

                    case 6:
                        Console.WriteLine();
                        UserService.SetLogin(new API_User());     //wipe out previous login info
                        return;

                    default:
                        Console.WriteLine("Goodbye!");
                        shouldExit = true;
                        return;
                    }
                }
            }
        }
Ejemplo n.º 26
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    //Console.WriteLine(UserService.GetToken());
                    Console.Write("Your current account balance is: $");
                    Console.WriteLine(accountService.GetBalanceOfAccount(UserService.GetUserId()));

                    //Console.WriteLine(user.GetUserId());
                }
                else if (menuSelection == 2)
                {
                    int accountId = UserService.GetUserId();
                    List <TransferDetails> transfers = transferService.GetTransfers(accountId);
                    Console.WriteLine($"\n\nWhere did my money go? \nWe would all like to know. \nNow you can view below \nhow your dough got so low:");
                    Console.WriteLine($"------------------------------------------");
                    Console.WriteLine("\nTransfers \nID        From/To        Amount");
                    Console.WriteLine($"------------------------------------------");
                    foreach (TransferDetails tD in transfers)
                    {
                        Console.WriteLine($"{tD.ID}".PadRight(10) + $"To:  {tD.ToUser}".PadRight(17) + $"$ {tD.Amount}");
                    }
                    Console.WriteLine("\nWhat do IDs like to chase?... (press enter or you will never know)");
                    string nothing = Console.ReadLine();
                    Console.WriteLine("Their IDetails!\n... . . . . .  .  .  .   .   .   ");
                    Console.WriteLine("\nTo view the details from a transfer enter the ID number. To return to the main menu press 0.");
                    int userInput = int.Parse(Console.ReadLine());
                    if (userInput > 0)
                    {
                        transferService.GetTransfer(accountId, userInput);
                    }
                    else
                    {
                        Console.WriteLine("Sorry, that's not a valid transfer ID");
                    }
                }

                else if (menuSelection == 3)
                {
                }


                else if (menuSelection == 4)
                {
                    Console.WriteLine("Here is a list of Users and Ids available to send TEnmo Bucks to: ");
                    transferService.GetUsers();
                    Transfer transferAttempt = consoleService.PromptForTransferData();

                    if (transferAttempt == null || !transferAttempt.IsValid)
                    {
                        Console.WriteLine("Transfer failed - incorrect data entered.");
                    }

                    else
                    {
                        TransferDetails completedTransfer = transferService.TransferRequest(transferAttempt);
                        if (completedTransfer != null)
                        {
                            Console.WriteLine("Transfer successful.");
                            Console.WriteLine($"Transfer details: {completedTransfer.ToUser}, {completedTransfer.Amount} ");
                        }
                        else
                        {
                            Console.WriteLine("Transfer failed.");
                        }
                    }
                }


                else if (menuSelection == 5)
                {
                }


                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }

                else
                {
                    Console.WriteLine("Ok, come back with more munny soon!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 27
0
        private void ShowMainMenu()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine();
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine();
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests - (Coming Soon!)");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks - (Coming Soon!)");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else
                {
                    switch (menuSelection)
                    {
                    case 1:
                        Console.Clear();
                        DisplayBalance();
                        break;

                    case 2:
                        Console.Clear();
                        DisplayAllTransferForUser();
                        DisplayTransferDetails();
                        Console.WriteLine();
                        break;

                    case 3:
                        Console.Clear();
                        Console.WriteLine();
                        Console.WriteLine("Look for this feature in a future update!");
                        Console.WriteLine();
                        break;

                    case 4:
                        Console.Clear();
                        DisplayAllUsers();
                        PromptForTransfer();
                        Console.WriteLine();
                        break;

                    case 5:
                        Console.Clear();
                        Console.WriteLine();
                        Console.WriteLine("Look for this feature in a future update!");
                        Console.WriteLine();
                        break;

                    case 6:
                        Console.WriteLine();
                        UserService.SetLogin(new API_User());     //wipe out previous login info
                        this.accountService.UpdateToken(null);
                        return;

                    case 0:
                        Console.WriteLine("Goodbye!");
                        shouldExit = true;
                        return;

                    default:
                        Console.WriteLine("That's not a valid choice. Try again.");
                        break;
                    }
                }
            }
        }
Ejemplo n.º 28
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.Clear();
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests"); //Bonus
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");           //Bonus
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                    menuSelection = -1;
                }
                else if (menuSelection == 1)
                {
                    // View your current balance
                    try
                    {
                        Account account = apiService.GetBalance();

                        Console.WriteLine($"Current balance: {account.Balance:C}");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 2)
                {
                    // View your past transfers
                    try
                    {
                        List <Transfer> transfers = apiService.GetTransfers();
                        foreach (Transfer transfer in transfers)
                        {
                            Console.WriteLine(transfer);
                        }
                        int      transferId     = consoleService.PromptForTransferID("pick a transfer");
                        Transfer singleTransfer = apiService.GetTransferById(transferId);
                        Console.WriteLine(singleTransfer.DetailsForTransfer());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 3)
                {
                    // View your pending requests
                    List <Transfer> transfers = apiService.GetTransfers();

                    foreach (Transfer transfer in transfers)
                    {
                        bool isReqeust     = transfer.TransferType == TransferType.Request;
                        bool isPending     = transfer.TransferStatus == TransferStatus.Pending;
                        bool isFromAccount = transfer.AccountFrom.UserId == UserService.GetUserId();

                        if (isReqeust && isPending && isFromAccount)
                        {
                            Console.WriteLine(transfer.ReqeustTransfer());
                        }
                    }

                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 4)
                {
                    // Send TE bucks
                    try
                    {
                        Console.Clear();
                        //Arrange
                        int                          toUserId = 0;
                        decimal                      amount   = -1;
                        List <ReturnUser>            users    = apiService.GetAllUsers();
                        Dictionary <int, ReturnUser> userMenu = new Dictionary <int, ReturnUser>();
                        // making a dictionary for menu options and using int key for access to ReturnUsers
                        int key = 1;
                        foreach (ReturnUser user in users)
                        {
                            userMenu.Add(key, user);
                            key++;
                        }

                        foreach (var option in userMenu)
                        {
                            Console.WriteLine($"{option.Key}: {option.Value.Username}");
                        }

                        // Choose a user and amount
                        bool isValid = false;
                        while (!isValid)
                        {
                            toUserId = consoleService.PromptForUserID("transfer TE bucks to");
                            if (userMenu.ContainsKey(toUserId))
                            {
                                isValid = true;
                            }
                            else
                            {
                                Console.WriteLine("Please enter a valid user Id.");
                            }
                        }

                        while (amount == -1)
                        {
                            amount = consoleService.PromtForAmount("How much would you like to transfer?");
                        }
                        if (amount == 0)
                        {
                            continue;
                        }

                        // Enter in transfer data
                        int      fromUserId  = UserService.GetUserId();
                        Transfer newTransfer = new Transfer(toUserId, fromUserId, amount);
                        // Send it
                        newTransfer = apiService.SendTEBucks(newTransfer);
                        Console.WriteLine(newTransfer.ToString());
                    }
                    catch (Exception x)
                    {
                        Console.WriteLine(x.Message);
                    }
                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 5)
                {
                    //TODO: Change list to dictionary
                    //TODO: Loop through dictionary and pick what you want to do with the request
                    // Request TE bucks
                    try
                    {
                        Console.Clear();
                        //Arrange
                        int                          fromUserId = 0;
                        decimal                      amount     = -1;
                        List <ReturnUser>            users      = apiService.GetAllUsers();
                        Dictionary <int, ReturnUser> userMenu   = new Dictionary <int, ReturnUser>();
                        // making a dictionary for menu options and using int key for access to ReturnUsers
                        int key = 1;
                        foreach (ReturnUser user in users)
                        {
                            userMenu.Add(key, user);
                            key++;
                        }

                        foreach (var option in userMenu)
                        {
                            Console.WriteLine($"{option.Key}: {option.Value.Username}");
                        }

                        // Choose a user and amount
                        bool isValid = false;
                        while (!isValid)
                        {
                            fromUserId = consoleService.PromptForUserID("transfer TE bucks to");
                            if (userMenu.ContainsKey(fromUserId))
                            {
                                isValid = true;
                            }
                            else
                            {
                                Console.WriteLine("Please enter a valid user Id.");
                            }
                        }

                        while (amount == -1)
                        {
                            amount = consoleService.PromtForAmount("How much would you like to request?");
                        }
                        if (amount == 0)
                        {
                            continue;
                        }

                        // Enter in transfer data
                        int      toUserId    = UserService.GetUserId();
                        Transfer newTransfer = new Transfer(toUserId, fromUserId, amount);
                        // Send it
                        newTransfer = apiService.RequestTransfer(newTransfer);
                        Console.WriteLine(newTransfer.ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }

                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else if (menuSelection == 6)
                {
                    // Log in as different user
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    return;                               //return to entry point

                    Console.Write("Press Enter to continue.");
                    Console.ReadLine();
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 29
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    Console.WriteLine($"Your current account balance is: ${apiService.GetBalance()}");
                }
                else if (menuSelection == 2)
                {
                    List <API_Transfer> transfers = apiService.ListTransfers();
                    if (transfers != null && transfers.Count > 0)
                    {
                        consoleService.WriteTransferList(transfers);
                        int          id       = consoleService.TransferToDetail(transfers);
                        API_Transfer transfer = apiService.GetTransfer(id);
                        consoleService.GetTransferDetails(transfer);
                    }
                }
                else if (menuSelection == 3)
                {
                    List <API_Transfer> transfers = apiService.ListTransfers();
                    if (transfers != null && transfers.Count > 0)
                    {
                        consoleService.WritePendingTransferList(transfers);
                    }
                }
                else if (menuSelection == 4)
                {
                    List <API_User> users       = apiService.ListUsers();
                    int             userID      = UserService.GetUserId();
                    API_Account     accountFrom = apiService.GetAccount(userID);
                    if (users != null && users.Count > 0)
                    {
                        API_Transfer transfer = consoleService.StartTransfer(users);
                        if (transfer.TransferAmount > accountFrom.Balance)
                        {
                            Console.WriteLine("Insufficient Funds");
                        }
                        else
                        {
                            API_Transfer updatedTransfer = apiService.DoTransfer(transfer);
                            apiService.UpdateBalance(updatedTransfer);
                            Console.WriteLine("Amount has been transferred");
                        }
                    }
                }
                else if (menuSelection == 5)
                {
                    List <API_User> users = apiService.ListUsers();
                    if (users != null && users.Count > 0)
                    {
                        API_Transfer transfer = consoleService.RequestTransfer(users);
                        apiService.DoTransfer(transfer);
                        Console.WriteLine("Request Sent.");
                    }
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }
Ejemplo n.º 30
0
        private static void MenuSelection()
        {
            int menuSelection = -1;

            while (menuSelection != 0)
            {
                Console.WriteLine("");
                Console.WriteLine("Welcome to TEnmo! Please make a selection: ");
                Console.WriteLine("1: View your current balance");
                Console.WriteLine("2: View your past transfers");
                Console.WriteLine("3: View your pending requests");
                Console.WriteLine("4: Send TE bucks");
                Console.WriteLine("5: Request TE bucks");
                Console.WriteLine("6: Log in as different user");
                Console.WriteLine("7: Create a new account");
                Console.WriteLine("0: Exit");
                Console.WriteLine("---------");
                Console.Write("Please choose an option: ");

                if (!int.TryParse(Console.ReadLine(), out menuSelection))
                {
                    Console.WriteLine("Invalid input. Please enter only a number.");
                }
                else if (menuSelection == 1)
                {
                    //View account balance
                    Console.WriteLine($"Your current account balance is: {accountService.GetBalance(UserService.GetUserId()):C2}");
                }
                else if (menuSelection == 2)
                {
                    //View past transfers
                    consoleService.ShowTransfers();
                    Console.WriteLine("Please enter transfer ID to view details (0 to cancel):");
                    int userRespone = Convert.ToInt32(Console.ReadLine());
                    if (userRespone == 0)
                    {
                        MenuSelection();
                    }
                    else
                    {
                        consoleService.TransferDetails(userRespone);
                    }
                }
                else if (menuSelection == 3)
                {
                    //View pending requests
                }
                else if (menuSelection == 4)
                {
                    //Send TE bucks
                    consoleService.PrintOutAllUsers();
                    int accountToID = int.Parse(Console.ReadLine());
                    Console.WriteLine($"Enter amount: ");
                    decimal amount = decimal.Parse(Console.ReadLine());
                    consoleService.SendTEBucks(accountToID, amount);
                }
                else if (menuSelection == 5)
                {
                    //request TE bucks
                    Console.WriteLine($"Transfers: ");
                }
                else if (menuSelection == 6)
                {
                    Console.WriteLine("");
                    UserService.SetLogin(new API_User()); //wipe out previous login info
                    Run();                                //return to entry point
                }
                else if (menuSelection == 7)
                {
                    Console.WriteLine("");
                    UserAccount newAccount = new UserAccount();
                    newAccount.UserID  = UserService.GetUserId();
                    newAccount.Balance = 1000;
                    try
                    {
                        accountService.CreateAccount(newAccount);
                        Console.WriteLine("Account Created!");
                    }catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                else
                {
                    Console.WriteLine("Goodbye!");
                    Environment.Exit(0);
                }
            }
        }