コード例 #1
0
 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"));
     }
 }
コード例 #2
0
        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());
        }