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);
        }
Exemple #2
0
        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."));
            }
        }