public ActionResult RejectRequest(TransferNumber transferNumber) { bool rejectSuccess = transferDAO.UpdateRequest(transferNumber.TransferId, 3); if (!rejectSuccess) { return(StatusCode(500, "Unable to reject request / server issue.")); } else { return(Ok("Request rejected.")); } }
public ActionResult ApproveRequest(TransferNumber transferNumber) { //gets user id for current user int userId = userDAO.GetUser(User.Identity.Name).UserId; //gets account from current user's id Account userAccount = accountDAO.GetAccountFromUserId(userId); //gets balance for current user's account decimal accountBalance = userAccount.Balance; //creates transfer object for base data of transfer i.e. just ids for types, accounts, no names RawTransferData transfer = transferDAO.GetTransferFromId(transferNumber.TransferId); //gets amount of transfer from transfer object decimal transferAmount = transfer.Amount; //gets account for recipient from account number Account recipientAccount = accountDAO.GetAccountFromAccountNumber(transfer.AccountTo); //checks to prevent user from approving request they made if (transfer.AccountTo == userAccount.AccountId) { return(BadRequest("You cannot approve a request to your own account.")); } //checks to make sure person approving has enough money in account to send if (accountBalance >= transferAmount) { bool reduceSuccess = transferDAO.ReduceBalance(transferAmount, userId); if (!reduceSuccess) { return(StatusCode(500, "Unable to withdraw funds / server issue.")); } bool increaseSuccess = transferDAO.IncreaseBalance(transferAmount, recipientAccount.UserId); if (!increaseSuccess) { return(StatusCode(500, "Unable to add funds / server issue.")); } //updates transfer status from "pending" to "approved" bool createTransferSuccess = transferDAO.UpdateRequest(transferNumber.TransferId, 2); if (!createTransferSuccess) { return(StatusCode(500, "Unable to record transaction / server issue.")); } //if successful, returns status 200 to client w/ message return(Ok("Request Approved, transfer successful.")); } else { return(BadRequest("Insufficient funds.")); } }
public string ApproveOrReject(int userInput, TransferNumber transferNumber, string token) { if (userInput == 1) { RestRequest request = new RestRequest(TRANSFER_URL + "/approve"); request.AddJsonBody(transferNumber); //adding an object the server can read, it connects to all the properties in the sql statement client.Authenticator = new JwtAuthenticator(token); IRestResponse response = client.Put(request); string message = ProcessErrorResponse(response); return(message); } else { RestRequest request = new RestRequest(TRANSFER_URL + "/reject"); request.AddJsonBody(transferNumber); client.Authenticator = new JwtAuthenticator(token); IRestResponse response = client.Put(request); string message = ProcessErrorResponse(response); return(message); } }
private static void MenuSelection() { int menuSelection = -1; string token = UserService.GetToken(); 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"); 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.Clear(); //prints the results of the get balance function consoleService.printBalance(accountService.GetBalance(token)); Console.ReadLine(); } else if (menuSelection == 2) { Console.Clear(); //generates list of transfers for logged in user List <Transfer> transferList = transferService.GetTransfersForUser(token); //prints transfer list to console consoleService.printTransfersFromList(transferList); //prints to console, asks user for transfer to view details, deals w/ bad input int transferId = consoleService.PromptForTransferDetails(transferList); //if they choose zero, bounces out to main menu if (transferId != 0) { Console.Clear(); //once they enter valid transfer number, prints details for transfer from the transfer list consoleService.PrintTransferDetails(transferList, transferId); Console.ReadLine(); } } else if (menuSelection == 3) { Console.Clear(); //generates list of pending transfers for users List <Transfer> transferList = transferService.GetPendingTransfersForUser(token); //prints list of pending transfers consoleService.printPendingRequestsFromList(transferList); //prompts user for ID of request to approve/reject, deals with bad input int transferId = consoleService.PromptForIdToApproveReject(transferList); //storing the result from promptforid in object to serialize for back end TransferNumber transferNumber = new TransferNumber() { TransferId = transferId }; if (transferId != 0) { int userInput = consoleService.PromptToApproveOrReject(); if (userInput != 0) { string message = transferService.ApproveOrReject(userInput, transferNumber, token); consoleService.PromptPrintMessage(message); Console.ReadLine(); } } } else if (menuSelection == 4) { Console.Clear(); List <User> userList = transferService.GetUsers(token); consoleService.printUserList(userList); int transferUserId = consoleService.PromptForTransferID("transfer", userList); if (transferUserId != 0) { decimal transferAmount = consoleService.PromptForTransferAmount("transfer"); if (transferAmount != 0) { API_Transfer transfer = transferService.CreateTransfer(transferUserId, transferAmount, UserService.GetUserId()); string responseMessage = transferService.Transfer(transfer, token); consoleService.PromptPrintMessage(responseMessage); Console.ReadLine(); } } Console.ReadLine(); } else if (menuSelection == 5) { Console.Clear(); List <User> userList = transferService.GetUsers(token); consoleService.printUserList(userList); int transferUserId = consoleService.PromptForTransferID("request", userList); if (transferUserId != 0) { decimal transferAmount = consoleService.PromptForTransferAmount("request"); if (transferAmount != 0) { API_Transfer transfer = transferService.CreateTransfer(UserService.GetUserId(), transferAmount, transferUserId); string responseMessage = transferService.CreateRequest(transfer, token); consoleService.PromptPrintMessage(responseMessage); } } Console.ReadLine(); } 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); } } }