public PartialViewResult CalculateMortgage(MortgageM mortgageM)
        {
            if (ModelState.IsValid)
            {
                var          loanDetails  = Calculate(mortgageM).GetAwaiter().GetResult();
                LoanDetailsM loanDetailsM = new LoanDetailsM()
                {
                    Duration      = mortgageM.Duration,
                    InterestRate  = mortgageM.InterestRate,
                    LoanAmount    = mortgageM.LoanAmount,
                    TotalInterest = loanDetails.TotalInterest,
                    TotalLoan     = loanDetails.TotalLoan
                };

                return(PartialView("_PartialLoanDetails", loanDetailsM));
            }

            throw new HttpException("Invalid values supplied!");
        }
        private async Task <LoanDetails> Calculate(MortgageM mortgageM)
        {
            // mortgage?loanAmount=1000&duration=2&name=aaaaa
            string     url    = "http://localhost:49608/api/mortgage?";
            HttpClient client = new HttpClient();

            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            url = url + "&loanAmount=" + mortgageM.LoanAmount.ToString() + "&duration=" + mortgageM.Duration.ToString() + "&interestRate=" + mortgageM.InterestRate;
            var response = await client.GetAsync(url).ConfigureAwait(false);

            response.EnsureSuccessStatusCode();

            // Deserialize the response body.
            string data = await response.Content.ReadAsStringAsync();

            JavaScriptSerializer JSserializer = new JavaScriptSerializer();

            return(JSserializer.Deserialize <LoanDetails>(data));
        }