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