public decimal GetBalance() { //sql call returns user object from current user's name User user = userDAO.GetUser(User.Identity.Name); //make's sql call to get current user's account and return balance property return(accountDAO.GetAccountFromUserId(user.UserId).Balance); }
public ActionResult CreateTransfer(CreateTransfer transfer) { //get's current user's account Account userAccount = accountDAO.GetAccountFromUserId(transfer.AccountFrom); //get's current user's balance decimal accountBalance = userAccount.Balance; //check's to see if person is trying to send money to themselves if (transfer.AccountFrom == transfer.AccountTo) { return(BadRequest("Invalid recipient. Cannot send money to yourself.")); } //checks to see if transfer amount is less than money in user's account else if (transfer.Amount <= accountBalance) { //reduces balance of person sending money(user) bool reduceSuccess = transferDAO.ReduceBalance(transfer.Amount, transfer.AccountFrom); //checks to make sure that there wasn't server communication problems when executing if (!reduceSuccess) { return(StatusCode(500, "Unable to withdraw funds / server issue.")); } //increases balance of recipient's account bool increaseSuccess = transferDAO.IncreaseBalance(transfer.Amount, transfer.AccountTo); //checks to make sure that there wasn't server communication problems when executing if (!increaseSuccess) { return(StatusCode(500, "Unable to add funds / server issue.")); } //creates log of transfer in transfers table bool createTransferSuccess = transferDAO.CreateTransfer(transfer, 2, 2); //checks to make sure that there wasn't server communication problems when executing if (!createTransferSuccess) { return(StatusCode(500, "Unable to record transaction / server issue.")); } //if reduce, increase and transfer are successful, return success message to client return(Ok("Transfer successful.")); } else { //alerts client that user doesn't have enough money to send return(BadRequest("Insufficient funds.")); } }