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 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 ViewTransfers() { Console.Clear(); List <ReturnTransfer> transfers = transferService.GetTransfers(UserService.GetUserId()); if (transfers == null || transfers.Count == 0) { Console.WriteLine("Sorry we couldn't find any transfers"); Console.WriteLine("Press enter to return"); Console.ReadLine(); return; } Console.WriteLine("-------------------------------------------"); Console.WriteLine("Transfers"); Console.Write("ID"); Console.Write("From/To".PadLeft(17)); Console.WriteLine("Amount".PadLeft(17)); Console.WriteLine("-------------------------------------------"); foreach (ReturnTransfer transfer in transfers) { if (transfer.Transfer_status_id == 2) { Console.Write($"{transfer.Transfer_id}".PadRight(10)); if (transfer.FromName == UserService.GetUserName()) { Console.Write("To: ".PadRight(6)); Console.Write($"{transfer.ToName}"); Console.WriteLine($"{transfer.Amount:C2}".PadLeft(15)); } else { Console.Write("From: "); Console.Write($"{transfer.FromName}"); Console.WriteLine($"{transfer.Amount:C2}".PadLeft(15)); } } } Console.WriteLine("---------"); bool validTransfer = false; do { Console.Write("Please enter the transfer ID to view details (0 to cancel): "); string userInput = Console.ReadLine().Trim(); if (userInput == "0") { Console.Clear(); return; } try { ReturnTransfer returnTransfer = transferService.GetTransfer(Convert.ToInt32(userInput)); if (returnTransfer.Transfer_id != 0) { Console.WriteLine("-------------------------------------------"); Console.WriteLine("Transfer Details"); Console.WriteLine("-------------------------------------------"); Console.WriteLine($"Id: {returnTransfer.Transfer_id}"); Console.WriteLine($"From: {returnTransfer.FromName}"); Console.WriteLine($"To: {returnTransfer.ToName}"); Console.WriteLine($"Type: {returnTransfer.TransferType}"); Console.WriteLine($"Status: {returnTransfer.TransferStatus}"); Console.WriteLine($"Amount: {returnTransfer.Amount:C2}"); Console.WriteLine("-------------------------------------------"); Console.WriteLine("Please press enter to return"); Console.ReadLine(); Console.Clear(); validTransfer = true; } else { Console.WriteLine("Please select a valid transfer."); } } catch { Console.WriteLine("Please select a valid transfer"); } } while (!validTransfer); }