public AccountDetailStruct CreateAccount(uint userID)
        {
            // Create the account
            RestRequest   req = new RestRequest(String.Format("api/account/create/{0}", userID));
            IRestResponse res = client.Execute(req);

            if (res.StatusCode == HttpStatusCode.NotFound)
            {
                // If the server returns a NOT FOUND status code, throw a HttpResponseException
                var response = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content      = new StringContent(res.Content + ", " + res.StatusDescription),
                    ReasonPhrase = res.StatusDescription
                };
                throw new HttpResponseException(response);
            }
            AccountDetailStruct result = JsonConvert.DeserializeObject <AccountDetailStruct>(res.Content);

            // Process pending transactions
            IRestResponse processRes = client.Execute(processTransactionsRequest);
            // Save to disk
            IRestResponse saveRes = client.Execute(saveToDiskRequest);

            return(result);
        }
        public AccountDetailStruct DoAccountWithdraw(uint accountID, [FromBody] uint amount)
        {
            // Perform the withdrawal
            RestRequest req  = new RestRequest(String.Format("api/account/{0}/withdraw", accountID), Method.POST);
            uint        body = amount;

            req.AddJsonBody(body);
            IRestResponse res = client.Execute(req);

            if (res.StatusCode == HttpStatusCode.NotFound || res.StatusCode == HttpStatusCode.BadRequest || res.StatusCode == HttpStatusCode.Forbidden)
            {
                // If the server returns a NOT FOUND or BAD REQUEST or FORBIDDEN status code, throw a HttpResponseException
                var response = new HttpResponseMessage(res.StatusCode)
                {
                    Content      = new StringContent(res.Content + ", " + res.StatusDescription),
                    ReasonPhrase = res.StatusDescription
                };
                throw new HttpResponseException(response);
            }

            // Process pending transactions
            IRestResponse processRes = client.Execute(processTransactionsRequest);
            // Save to disk
            IRestResponse saveRes = client.Execute(saveToDiskRequest);

            // Get updated account details
            RestRequest         req2   = new RestRequest(String.Format("api/account/{0}", accountID));
            IRestResponse       res2   = client.Execute(req2);
            AccountDetailStruct result = JsonConvert.DeserializeObject <AccountDetailStruct>(res2.Content);

            return(result);
        }
Exemple #3
0
        public List <AccountDetailStruct> GetUserAccounts(uint userID)
        {
            List <AccountDetailStruct> result = new List <AccountDetailStruct>();

            try
            {
                List <uint> accountIDs = access.GetAccountIDsByUser(userID);
                foreach (uint ID in accountIDs)
                {
                    AccountDetailStruct entry = new AccountDetailStruct();

                    access.SelectAccount(ID);
                    entry.accountID = ID;
                    entry.userID    = access.GetOwner();
                    entry.balance   = access.GetBalance();
                    result.Add(entry);
                }
            }
            catch (Exception)
            {
                var response = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content      = new StringContent("User's accounts could not be retreived"),
                    ReasonPhrase = "User could not be found"
                };
                throw new HttpResponseException(response);
            }
            return(result);
        }
        public AccountDetailStruct GetAccountDetail(uint accountID)
        {
            // Get the account
            RestRequest   req1 = new RestRequest(String.Format("api/account/{0}", accountID));
            IRestResponse res1 = client.Execute(req1);

            if (res1.StatusCode == HttpStatusCode.NotFound)
            {
                // If the server returns a NOT FOUND status code, throw a HttpResponseException
                var response = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content      = new StringContent(res1.Content + ", " + res1.StatusDescription),
                    ReasonPhrase = res1.StatusDescription
                };
                throw new HttpResponseException(response);
            }
            AccountDetailStruct result = JsonConvert.DeserializeObject <AccountDetailStruct>(res1.Content);

            return(result);
        }
Exemple #5
0
        public AccountDetailStruct CreateAccount(uint userID)
        {
            AccountDetailStruct result = new AccountDetailStruct();

            try
            {
                result.accountID = access.CreateAccount(userID);
            }
            catch (Exception e)
            {
                var response = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content      = new StringContent("Account could not be created"),
                    ReasonPhrase = "User could not be found"
                };
                throw new HttpResponseException(response);
            }

            return(GetAccountDetail(result.accountID));
        }
Exemple #6
0
        public AccountDetailStruct GetAccountDetail(uint accountID)
        {
            AccountDetailStruct result = new AccountDetailStruct();

            try
            {
                access.SelectAccount(accountID);
                result.accountID = accountID;
                result.userID    = access.GetOwner();
                result.balance   = access.GetBalance();
            }
            catch (Exception)
            {
                var response = new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    Content      = new StringContent("Account details could not be retreived"),
                    ReasonPhrase = "Account could not be found"
                };
                throw new HttpResponseException(response);
            }
            return(result);
        }