public IActionResult SendTransfer(TransferToSend transfer) { //Step 1 Get user id int userId = (int)GetCurrentUserId(); //Step 2 Subtract from Sender bool subtractSuccess = transferDAO.SubtractBalance(userId, transfer.Amount); if (!subtractSuccess) { return(StatusCode(500, "Server error subtracting balance")); } //Step 3 Add to Receiver bool addSuccess = transferDAO.AddBalance(transfer.To, transfer.Amount); if (!addSuccess) { return(StatusCode(500, "Server error adding balance")); } Transfer returnTransfer = transferDAO.LogTransfer(userId, transfer.To, transfer.Amount, transfer.Type, transfer.Status); if (returnTransfer == null) //if return transfer is null, the funds were exchanged, but the transfer was not added to the transfers table { return(StatusCode(500, "Server error logging transfer")); } return(Ok(returnTransfer)); }
/// <summary> /// Updates the databse to represent a transfer from the current user to the specific receiverId provided. /// </summary> /// <param name="receiverId"></param> ReceiverID cannot be the same as the current user (checks when prompting for receiverID. /// <param name="amount"></param> /// <returns>Transfer class with all parameters added.</returns> public TransferClient SendTransfer(int receiverId, double amount) { TransferToSend t = new TransferToSend(receiverId, amount); client.Authenticator = new JwtAuthenticator(UserService.GetToken()); RestRequest request = new RestRequest(API_BASE_URL + "transfers"); request.AddJsonBody(t); IRestResponse <TransferClient> response = client.Put <TransferClient>(request); if (response.ResponseStatus != ResponseStatus.Completed) { Console.WriteLine("An error occurred communicating with the server."); Console.WriteLine(response.StatusCode + response.ErrorMessage); return(null); } else if (!response.IsSuccessful) { Console.WriteLine(response.StatusCode + response.ErrorMessage); return(null); } return(response.Data); }