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); } } }
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; } } } }
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(); } }
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); } } }
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); } } }
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 } } }
//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(); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }
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(); } } }
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); } } }
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; } } } }
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); } } }
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); } } }
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; } } }
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); } } }
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(); }
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); } } }
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); } } }
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); } } }
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; } } } }
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); } } }
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; } } } }
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); } } }
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); } } }
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); } } }