public void ListAllTransfers() { RestRequest request = new RestRequest(API_Base_URL + "transactions"); IRestResponse <List <Transfer> > response = client.Get <List <Transfer> >(request); List <Transfer> result = new List <Transfer>(); result = response.Data; foreach (Transfer transfer in result) { if (transfer.ToAccountID == UserService.GetUserId()) { Console.WriteLine($"{transfer.TransferID} From:{GetUsernameByID(transfer.FromAccountID)} {transfer.TransferAmount:C}"); } else { Console.WriteLine($"{transfer.TransferID} To:{GetUsernameByID(transfer.ToAccountID)} {transfer.TransferAmount:C}"); } } }
public Transfer PromptForTransferData() { Transfer transfer = new Transfer(); transfer.AccountFrom = UserService.GetUserId(); transfer.StatusId = 1; transfer.TypeId = 2; int accountTo = -1; decimal amount = -1; bool isGoodInput = false; while (!isGoodInput || accountTo < 0) { Console.Write("Enter User ID you wish to transfer to: "); isGoodInput = int.TryParse(Console.ReadLine(), out accountTo); if (isGoodInput && accountTo > 0) { transfer.AccountTo = accountTo; } else { Console.WriteLine("Invalid input. Only input an existing User ID number."); } } while (!isGoodInput || amount < 0) { Console.Write("Enter the amount you wish to transfer to " + accountTo + ": "); isGoodInput = decimal.TryParse(Console.ReadLine(), out amount); if (isGoodInput && amount > 0) { transfer.Amount = amount; } else { Console.WriteLine("Invalid input. Only input a valid dollar amount."); } } return(transfer); }
public Transfer SendMoney(int toUserId, decimal sentMoney) { if (LoggedIn) { Transfer transfer = new Transfer(); transfer.AccountFrom = UserService.GetUserId(); transfer.AccountTo = toUserId; transfer.Amount = sentMoney; transfer.TransferStatusId = 2; transfer.TransferTypeId = 2; RestRequest request = new RestRequest($"{API_TRANSFER_URL}/sends"); request.AddJsonBody(transfer); authClient.Authenticator = new JwtAuthenticator(UserService.GetToken()); IRestResponse <Transfer> response = authClient.Post <Transfer>(request); if (response.ResponseStatus != ResponseStatus.Completed) { //response not received Console.WriteLine("An error occurred communicating with the server."); return(null); } else if (!response.IsSuccessful) { //response non-2xx Console.WriteLine("An error response was received from the server. The status code is " + (int)response.StatusCode); return(null); } else { //success return(response.Data); } } else { Console.WriteLine("You are not logged in"); return(null); } }
private static List <Transfer> PrintTransferList() { Console.WriteLine("\n-------------------------------------------\nTransfers"); Console.WriteLine(String.Format("{0, 0}\t| {1,-18} {2,2} ", "ID", "FROM/TO", "| Amount")); Console.WriteLine("-------------------------------------------"); List <Transfer> t = transferServices.GetTransfers(); foreach (Transfer transfer in t) { if (transfer.UserFromId == UserService.GetUserId()) { Console.WriteLine(String.Format("{0, 0}\t| {1,-18} {2,2:C} ", transfer.TransferId, "To: " + transfer.UserNameTo, "| " + transfer.Amount.ToString("C2"))); } else if (transfer.UserToId == UserService.GetUserId()) { Console.WriteLine(String.Format("{0, 0}\t| {1,-18} {2,2:C} ", transfer.TransferId, "From: " + transfer.UserNameFrom, "| " + transfer.Amount.ToString("C2"))); } } return(t); }
private static void PrintTransfers(List <Transfer> allTransfers) { Console.Clear(); Console.WriteLine("----------------------------------------------"); Console.WriteLine("Transfer"); Console.WriteLine("IDs From/To Amount"); Console.WriteLine("----------------------------------------------"); Console.WriteLine(); if (allTransfers.Count == 0) { Console.WriteLine("There are no transfers associated with this User"); Console.WriteLine(); } else { foreach (Transfer trans in allTransfers) { if (trans.account_To_ID == UserService.GetUserId()) { string id = $"Id: {trans.transfer_ID}"; string name = $"From: {trans.account_From_UserName}"; string amount = $" {trans.AmountToTransfer:C2}"; Console.WriteLine(String.Format("{0,-9} | {1,-22} | {2,6} ", id, name, amount)); } else { string id = $"Id: {trans.transfer_ID}"; string name = $"To: {trans.account_To_UserName}"; string amount = $" {trans.AmountToTransfer:C2}"; Console.WriteLine(String.Format("{0,-9} | {1,-22} | {2,6}", id, name, amount)); } } } Console.WriteLine("----------------------------------------------"); Console.WriteLine(); Console.Write("Please enter the Id of which you would like to view the details (0 to exit): "); }
private static void Transaction() { Account account = new Account(); Transfer transfers = new Transfer(); try { int recipient = CLIHelper.GetInteger("Enter id of user you are trying to send to: "); account = api.GetAccounts(recipient); if (recipient == 0 || account == null) { MenuSelection(); } else { decimal amount = CLIHelper.GetDecimal("Enter amount: "); if (amount > api.GetBalance().Balance) { Console.WriteLine("Insufficient funds. Please try again."); Transaction(); } else { Account userAccount = new Account(); int id = UserService.GetUserId(); transfers.AccountFrom = id; transfers.accountTo = recipient; transfers.Amount = amount; api.Transactions(transfers); api.UpdateBalace(transfers); Console.WriteLine("Your transfer has been approved!"); MenuSelection(); } } }catch (Exception e) { } }
public Transfer ValidateTransferDetailsChoice(List <Transfer> transferList, bool request) { Dictionary <int, Transfer> transferIdAndObject = new Dictionary <int, Transfer>(); string transferStatus = request ? "approve/reject" : "view details"; foreach (Transfer transfer in transferList) { if (request) { if (transfer.transfer_status == "Pending" && UserService.GetUserId() != transfer.to_account) { transferIdAndObject[transfer.transferId] = transfer; } } else { transferIdAndObject[transfer.transferId] = transfer; } } while (true) { Console.WriteLine("Please enter transfer ID to " + transferStatus + " (0 to cancel): "); if (int.TryParse(Console.ReadLine(), out int transferId)) { if (transferId == 0) { return(null); } if (transferIdAndObject.ContainsKey(transferId)) { return(transferIdAndObject[transferId]); } Console.WriteLine("*** Not a valid option ***"); } } }
// View your past transfers public List <Transfer> GetListOfTransfers() { RestRequest request = new RestRequest(API_BASE_URL + "transfer/all"); client.Authenticator = new JwtAuthenticator(UserService.GetToken()); IRestResponse <List <Transfer> > response = client.Get <List <Transfer> >(request); if (response.ResponseStatus != ResponseStatus.Completed || !response.IsSuccessful) { ProcessErrorResponse(response); } else { foreach (Transfer t in response.Data) { t.AccountFrom = UserService.GetUserId(); t.AccountTo = UserService.GetUserId(); } } return(response.Data); }
public void DisplayUsers() { RestRequest request = new RestRequest(API_Base_URL + "users"); IRestResponse <Dictionary <int, string> > response = client.Get <Dictionary <int, string> >(request); Dictionary <int, string> result = new Dictionary <int, string>(); result = response.Data; int myID = UserService.GetUserId(); foreach (KeyValuePair <int, string> entry in result) { if (entry.Key == myID) { //TODO: format (padding) Console.WriteLine($"{entry.Key} {entry.Value} (*YOU*)"); } else { Console.WriteLine($"{entry.Key} {entry.Value}"); } } }
/// <summary> /// Prompts for a UserId from list (Printed previously). /// </summary> /// <param name="list"></param> /// <param name="action"></param> String to print in prompt Expected values are "Send to" or "Request from" /// <returns>Returns the ID as an int</returns> public int PromptForUserId(List <UserDTO> list, string action) { bool exists = false; int result = -1; Console.WriteLine(""); Console.Write("Please enter ID you wish to " + action + "(0 to cancel): "); if (!int.TryParse(Console.ReadLine(), out int actionId)) { Console.WriteLine("Invalid input. Only input a number."); return(result); } foreach (UserDTO user in list) { if (user.UserId == actionId) { result = user.AccountNumber; if (actionId == UserService.GetUserId()) { Console.WriteLine("You can't " + action + " yourself."); result = -1; } exists = true; break; } } if (actionId == 0) { Console.WriteLine("Returning to main menu...\n"); result = actionId; } else if (!exists) { Console.WriteLine("Account does not exist please try again."); return(result); } return(result); }
public void TransferFunds(int recipientId, decimal amount) { Transfer t = new Transfer(); t.AccountFrom = UserService.GetUserId(); t.AccountTo = recipientId; t.Amount = amount; t.TransferTypeId = 2; RestRequest request = new RestRequest(API_BASE_URL + "transfer"); client.Authenticator = new JwtAuthenticator(UserService.GetToken()); request.AddJsonBody(t); IRestResponse response = client.Post(request); if (response.ResponseStatus != ResponseStatus.Completed || !response.IsSuccessful) { ProcessErrorResponse(response); } else { Console.WriteLine("Funds transferred successfully"); } }
public Transfer Transfer(int userIdTo, decimal amount) { Transfer transfer = new Transfer(); transfer.AccountFrom = UserService.GetUserId(); transfer.AccountTo = userIdTo; transfer.Amount = amount; transfer.TransferStatusId = 2; transfer.TransferTypeId = 2; RestRequest request = new RestRequest(API_BASE_URL + "transfers"); request.AddJsonBody(transfer); client.Authenticator = new JwtAuthenticator(UserService.GetToken()); IRestResponse <Transfer> response = client.Put <Transfer>(request); if (response.ResponseStatus != ResponseStatus.Completed) { throw new Exception("Error occurred - unable to reach server."); } if (!response.IsSuccessful) { if (response.StatusCode == HttpStatusCode.Unauthorized) { throw new Exception("Authorization is required, please log in"); } if (response.StatusCode == HttpStatusCode.Forbidden) { throw new Exception("You do not have permission"); } throw new Exception($"Error occurred: {response.StatusCode} ({(int)response.StatusCode})"); } return(response.Data); }
public void WriteTransferList(List <API_Transfer> transfers) { int selection = -1; while (selection != 0) { Console.WriteLine("-------------------------------------"); Console.WriteLine("Transfers"); Console.WriteLine("ID\t \tFrom/To\t \tAmount"); Console.WriteLine("-------------------------------------"); foreach (API_Transfer transfer in transfers) { if (transfer.UserFromID == UserService.GetUserId()) { Console.WriteLine($"{transfer.TransferID}\t \tTo: {transfer.UsernameTo}\t${transfer.TransferAmount}\r\n"); } else if (transfer.UserFromID != UserService.GetUserId()) { Console.WriteLine($"{transfer.TransferID}\t \tFrom: {transfer.UsernameFrom}\t${transfer.TransferAmount}\r\n"); } } selection = 0; } }
public void WriteTransferList(List <API_Transfer> transfers) { int selection = -1; while (selection != 0) { Console.WriteLine("-------------------------------------"); Console.WriteLine("Transfers"); Console.WriteLine("ID From/To Amount"); Console.WriteLine("-------------------------------------"); foreach (API_Transfer transfer in transfers) { if (transfer.userFromID == UserService.GetUserId()) { Console.WriteLine($"{transfer.transferID} To: {transfer.usernameTo} ${transfer.transferAmount}"); } else if (transfer.userFromID != UserService.GetUserId()) { Console.WriteLine($"{transfer.transferID} From: {transfer.usernameFrom} ${transfer.transferAmount}"); } } break; } }
public void TransferMoney(int userToId, decimal amount) { Transfer t = new Transfer(); t.TransferTypeId = 2; //send t.TransferStatusId = 2; //approved t.UserFromId = UserService.GetUserId(); t.UserToId = userToId; t.Amount = amount; RestClient client = new RestClient(); RestRequest request = new RestRequest(API_BASE_URL + "transfer/"); client.Authenticator = new JwtAuthenticator(UserService.GetToken()); request.AddJsonBody(t); IRestResponse response = client.Post(request); if (response.ResponseStatus != ResponseStatus.Completed) { Console.WriteLine("An error occurred communicating with the server."); } else if (!response.IsSuccessful) { //Console.WriteLine("An error response was received from the server. The status code is " + (int)response.StatusCode + response.Content); if ((int)response.StatusCode == 400) { Console.WriteLine("An error response was received from the server. Can't input a NEGATIVE NUMBER."); } else if ((int)response.StatusCode == 404) { Console.WriteLine("An error response was received from the server. INVALID USER ID."); } } }
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 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() { 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 RequestMoney() { int finish = -1; do { List <Account> allUsers = transferService.GetAllUsers(UserService.GetUserId()); PrintUsers(allUsers); Console.Write("Please enter ID of user you wish to request money from: "); int fromAccount = -1; if (!int.TryParse(Console.ReadLine(), out fromAccount)) { Console.Clear(); Console.WriteLine(); Console.WriteLine("Invalid entry. Please enter a number. "); SomethingWentWrong(); Console.Clear(); } if (fromAccount > 0) { if (!IsValidUserId(allUsers, fromAccount)) { Console.Clear(); Console.WriteLine(); Console.WriteLine("Invalid Id. Please enter correct ID number. "); SomethingWentWrong(); } Console.Write("Please enter amount to request: $"); decimal amount = -1; if (!decimal.TryParse(Console.ReadLine(), out amount)) { Console.Clear(); Console.WriteLine(); Console.WriteLine("Invalid entry. Please input numbers only."); SomethingWentWrong(); fromAccount = -1; } Transfer newTransfer = new Transfer(); newTransfer.account_From_ID = fromAccount; newTransfer.account_To_ID = UserService.GetUserId(); newTransfer.AmountToTransfer = amount; if (amount > 0) { if (transferService.RequestMoney(newTransfer)) { Console.WriteLine(); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("Transfer Posted. "); Console.WriteLine("--------------------------------------------------------------"); System.Threading.Thread.Sleep(3000); Console.Clear(); fromAccount = -1; finish++; } else { Console.WriteLine("Insufficient Funds."); System.Threading.Thread.Sleep(2000); fromAccount = -1; } } } } while (finish != 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); }
private static void GetPendingTransfers() { bool transferSelected = false; do { 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("To".PadLeft(17)); Console.WriteLine("Amount".PadLeft(17)); Console.WriteLine("-------------------------------------------"); foreach (ReturnTransfer transfer in transfers) { if (transfer.Transfer_status_id == 1 && transfer.Account_from == UserService.GetUserId()) { Console.Write($"{transfer.Transfer_id}".PadRight(10)); Console.Write("To: ".PadRight(6)); Console.Write($"{transfer.ToName}"); Console.WriteLine($"{transfer.Amount:C2}".PadLeft(15)); } } Console.WriteLine("---------"); Console.Write("Please enter transfer ID to approve/reject (0 to cancel): "); string approveRejectTransferChoice = Console.ReadLine().Trim(); try { if (Convert.ToInt32(approveRejectTransferChoice) == 0) { return; } ReturnTransfer approveRejectTransfer = transferService.GetTransfer(Convert.ToInt32(approveRejectTransferChoice)); if (approveRejectTransfer.Transfer_id != 0 && approveRejectTransfer.Transfer_status_id == 1 && approveRejectTransfer.Account_from == UserService.GetUserId() && approveRejectTransfer.Amount <= accountService.GetBalance(UserService.GetUserId())) { Console.WriteLine("1: Approve"); Console.WriteLine("2: Reject"); Console.WriteLine("3: Don't approve or reject"); Console.WriteLine("---------"); Console.Write("Please choose an option: "); string approveReject = Console.ReadLine(); switch (approveReject) { case "1": ; approveRejectTransfer.Transfer_status_id = 2; transferService.UpdateTransferStatus(approveRejectTransfer); transferSelected = true; Console.WriteLine("Transfer Approved"); break; case "2": approveRejectTransfer.Transfer_status_id = 3; transferService.UpdateTransferStatus(approveRejectTransfer); transferSelected = true; Console.WriteLine("Transfer Rejected"); break; case "3": transferSelected = true; return; default: return; } } else if (approveRejectTransfer.Amount > accountService.GetBalance(UserService.GetUserId())) { Console.WriteLine("You don't have enough funds to fulfill this request."); } else { Console.WriteLine("Please choose a valid transfer"); } } catch { Console.WriteLine("Please enter a valid option"); } } while (!transferSelected); }
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 SendMoney() { bool selectedUser = false; string sendToUser; do { List <OtherUser> otherUsers = accountService.RetrieveUsers(); Console.Clear(); Console.WriteLine("-------------------------------------------"); Console.WriteLine("Users"); Console.Write("ID"); Console.WriteLine("Name".PadLeft(15)); Console.WriteLine("-------------------------------------------"); foreach (OtherUser user in otherUsers) { if (user.User_Id != UserService.GetUserId()) { Console.Write($"{user.User_Id}"); Console.WriteLine($"{user.Username}".PadLeft(15)); } } Console.WriteLine("---------\n"); Console.Write("Enter ID of the user you are sending to (0 to cancel): "); sendToUser = Console.ReadLine().Trim(); if (Convert.ToInt32(sendToUser) == 0) { Console.Clear(); return; } try { if (accountService.GetBalance(Convert.ToInt32(sendToUser)) == -1) { Console.WriteLine("Please enter a valid user"); } else { selectedUser = true; } } catch (Exception) { Console.WriteLine("Please select a valid user ID"); } } while (!selectedUser); bool moneySent = false; do { Console.Write("Enter the amount to send: "); string moneyToSend = Console.ReadLine().Trim(); try { decimal convertedMoneyToSend = Convert.ToDecimal(moneyToSend); if (convertedMoneyToSend < 0 || convertedMoneyToSend == 0) { Console.WriteLine("Please enter a postive number"); } else { if (convertedMoneyToSend > accountService.GetBalance(UserService.GetUserId())) { Console.WriteLine("Sorry, you don't have enough funds."); } else { Transfer transfer = new Transfer(2, 2, UserService.GetUserId(), Convert.ToInt32(sendToUser), convertedMoneyToSend); if (transferService.SendMoney(transfer)) { Console.WriteLine("Successfully sent, thank you for using TEnmo!"); Console.WriteLine("Please press enter to return"); Console.ReadLine(); moneySent = true; Console.Clear(); return; } else { Console.WriteLine("Something went wrong, please press enter to try again"); Console.ReadLine(); } } } } catch (Exception) { Console.WriteLine("Sorry, that's not a valid entry, please press enter to try again"); Console.ReadLine(); } } while (!moneySent); }
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(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 RequestTransfer() { bool selectedUser = false; string requestFromUser; do { List <OtherUser> otherUsers = accountService.RetrieveUsers(); Console.Clear(); Console.WriteLine("-------------------------------------------"); Console.WriteLine("Users"); Console.Write("ID"); Console.WriteLine("Name".PadLeft(15)); Console.WriteLine("-------------------------------------------"); foreach (OtherUser user in otherUsers) { if (user.User_Id != UserService.GetUserId()) { Console.Write($"{user.User_Id}"); Console.WriteLine($"{user.Username}".PadLeft(15)); } } Console.WriteLine("---------\n"); Console.Write("Enter ID of the user you are requesting from (0 to cancel): "); requestFromUser = Console.ReadLine().Trim(); if (Convert.ToInt32(requestFromUser) == 0) { Console.Clear(); return; } try { if (accountService.GetBalance(Convert.ToInt32(requestFromUser)) == -1) { Console.WriteLine("Please enter a valid user"); } else { selectedUser = true; } } catch (Exception) { Console.WriteLine("Please select a valid user ID"); } } while (!selectedUser); bool requestSent = false; do { Console.Write("Enter the amount to request: "); string moneyToSend = Console.ReadLine().Trim(); try { decimal convertedMoneyToSend = Convert.ToDecimal(moneyToSend); if (convertedMoneyToSend < 0 || convertedMoneyToSend == 0) { Console.WriteLine("Please enter a postive number"); } else { Transfer transfer = new Transfer(1, 1, Convert.ToInt32(requestFromUser), UserService.GetUserId(), convertedMoneyToSend); if (transferService.SendMoney(transfer)) { Console.WriteLine("Successfully requested, the user will need to accept before you can access the funds."); Console.WriteLine("Please press enter to return"); Console.ReadLine(); requestSent = true; Console.Clear(); return; } else { Console.WriteLine("Something went wrong, please press enter to try again"); Console.ReadLine(); } } } catch { Console.WriteLine("Sorry, that's not a valid entry, please press enter to try again"); Console.ReadLine(); } } while (!requestSent); }
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 static void PendingTransfersMenu() { Console.Clear(); Console.WriteLine("----------------------------------------------"); Console.WriteLine("Transfer"); Console.WriteLine("IDs From Amount"); Console.WriteLine("----------------------------------------------"); Console.WriteLine(); List <Transfer> allTransfers = transferService.GetAllTransfers(UserService.GetUserId()); List <Transfer> myPendingTransfers = PrintPendingTransfers(allTransfers); if (myPendingTransfers.Count == 0) { Console.WriteLine("There are no pending transfers for this user."); Console.WriteLine("----------------------------------------------"); System.Threading.Thread.Sleep(5000); Console.WriteLine(); Console.Clear(); } else { Console.WriteLine("----------------------------------------------"); Console.WriteLine(); Console.Write("Please enter the Id of the transfer you would like to view (0 to exit) : "); int transferToView = -1; if (!int.TryParse(Console.ReadLine(), out transferToView)) { Console.Clear(); Console.WriteLine(); SomethingWentWrong(); } else if (transferToView > 0) { PrintTransferDetails(myPendingTransfers, transferToView); Console.Write("Would you like to Approve or Reject this transfer? (A/R or press enter to exit) :"); string proceed = Console.ReadLine().ToLower(); if (proceed == "a" || proceed == "approve") { bool success = transferService.ApproveTransfer(UserService.GetUserId(), transferToView); if (success) { Console.WriteLine(); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("Transfer Approved. "); Console.WriteLine("--------------------------------------------------------------"); System.Threading.Thread.Sleep(3000); Console.Clear(); } else { Console.WriteLine(); Console.WriteLine("--------------------------------------------------------------"); Console.WriteLine("Error . "); Console.WriteLine("--------------------------------------------------------------"); SomethingWentWrong(); System.Threading.Thread.Sleep(3000); Console.Clear(); } } else if (proceed == "r" || proceed == "reject") { transferService.RejectTransfer(UserService.GetUserId(), transferToView); } else { Console.Clear(); } } else { Console.Clear(); } } }
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() { 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); } } }