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)); }