public void HistorcialTransfers(List <TransferHistory> transfers) // Used for menu option #2 // Still need to figure out return type. { // Do I need to check premission for spefic user's right to access transfers below? List <int> validID = new List <int>(); // View your past transfers Console.WriteLine("-------------------------------------------\n" + "Transfers\nID\t\t\tFrom/To\t\t\tAmount\n" + "-------------------------------------------\n"); foreach (TransferHistory transfer in transfers) { Console.WriteLine($"{transfer.TransferID} {transfer.Direction}: {transfer.Username} $ {transfer.Amount}"); validID.Add(transfer.TransferID); } Console.WriteLine("---------\n" + "Please enter transfer ID to view details (0 to cancel): "); // TransferHistory has TransferID, Username, Direction, & Amount //Transfer Details int subMenuSelection = -1; while (subMenuSelection != 0) { if (!int.TryParse(Console.ReadLine(), out subMenuSelection)) { Console.WriteLine("Invalid input. Please enter only a number."); } else if (validID.Contains(subMenuSelection)) { APIService service = new APIService(); TransferDetails details = service.GetTransferDetails(subMenuSelection); PrintTransferDetails(details); //Show Transfer details //Console.WriteLine("--------------------------------------------\n" + // "Transfer Details\n" + // "--------------------------------------------\n" + // $"Id: {details.ID}\n" + // $"From: {details.FromUser}\n" + // $"To: {details.ToUser}\n" + // $"Type: {details.Type}\n" + // Send or Request // $"Status: {details.Status}\n" + // Pending, Approved, Rejected // $"Amount: ${details.Amount}"); } else if (subMenuSelection == 0) { 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) { 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); } } }