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