public ActionResult Index(string selectedAccount) { if (string.IsNullOrEmpty(selectedAccount)) { Session["NoAccountSelectedError"] = "Please select the account"; return(RedirectToAction("Index")); } else { Session["accountNumber"] = selectedAccount; long selectedAccountLong = long.Parse(selectedAccount); accountDetailViewModel obj = new accountDetailViewModel(); accountTypeDetailViewModel cmedal = new accountTypeDetailViewModel(); using (client) { client.BaseAddress = new Uri("http://localhost:80"); //HTTP GET var responseTask = client.GetAsync("BankAPI/api/Customer/getSpecificAccountOfUser?accountNo=" + selectedAccountLong); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <accountDetailViewModel>(); readTask.Wait(); obj = readTask.Result; responseTask = client.GetAsync("BankAPI/api/Customer/getAccountTypeOfGivenAmount?amount=" + long.Parse(obj.accountBalance.ToString())); responseTask.Wait(); result = responseTask.Result; var readTask1 = result.Content.ReadAsAsync <accountTypeDetailViewModel>(); readTask1.Wait(); cmedal = readTask1.Result; } else { ModelState.AddModelError(string.Empty, "Server error. Please contact administrator."); } } Session["medal"] = cmedal.accountType; return(RedirectToAction("Menu")); } }
public ActionResult FundTransfer(long destinationAccountNo, int amount, string comment) { bool obj, res = false; int obj1 = 0; long accountNo = long.Parse(Session["accountNumber"].ToString()); try { if (accountNo == destinationAccountNo) { Session["SameAccountFundTransferError"] = "Source and destination account cant be same"; return(View()); } // bool res = obj.checkAccount(destinationAccountNo); using (client) { client.BaseAddress = new Uri("http://localhost:80"); //HTTP GET var responseTask = client.GetAsync("BankAPI/api/Customer/checkDestinationAccount?accountNo=" + destinationAccountNo); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = result.Content.ReadAsAsync <bool>(); readTask.Wait(); obj = readTask.Result; res = obj; responseTask = client.GetAsync("BankAPI/api/Customer/getAmount?accountNo=" + accountNo); responseTask.Wait(); result = responseTask.Result; var readTask1 = result.Content.ReadAsAsync <int>(); readTask1.Wait(); obj1 = readTask1.Result; } else { ModelState.AddModelError(string.Empty, "Server error. Please contact administrator."); } } if (res) { int amt = obj1; if (amt > amount) { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:80"); //HTTP GET var responseTask = client.PostAsJsonAsync("BankAPI/api/Customer/FundTransfer?amount=" + amount + "&destinationAccountNo=" + destinationAccountNo + "&SourceAccountNo=" + accountNo, amount); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { Session["FundTransferSuccessful"] = "transferred " + amount + " successfully"; responseTask = client.PostAsJsonAsync("BankAPI/api/Transaction/insertTransaction?SourceAccount=" + accountNo + "&destinationAccount=" + destinationAccountNo + "&amt=" + amount + "&type=" + "FundTransfer" + "&comment=" + comment, amount); responseTask.Wait(); var result1 = responseTask.Result; int balance = amt - amount; responseTask = client.GetAsync("BankAPI/api/Customer/getAccountTypeOfGivenAmount?amount=" + balance); responseTask.Wait(); var result2 = responseTask.Result; var readTask2 = result2.Content.ReadAsAsync <accountTypeDetailViewModel>(); readTask2.Wait(); accountTypeDetailViewModel cmedal = readTask2.Result; Session["medal"] = cmedal.accountType; } else { ModelState.AddModelError(string.Empty, "Server error. Please contact administrator."); } } ModelState.Clear(); } else { Session["SameAccountFundTransferError"] = "Insufficient Amount"; } } else { Session["SameAccountFundTransferError"] = "Destination Account not found"; } } catch (Exception exp) { ViewBag.Error = "Exception " + exp; } return(View()); }