Example #1
0
        public void ProcessPension_WhenCalled_Returns_BadRequest()
        {
            ProcessPensionInput processpensioninput = new ProcessPensionInput()
            {
                AadhaarNumber = "222122223333",
                BankCharge    = 550,
                PensionAmount = 25500
            };
            ValueforCalCulation valueforCalculation = new ValueforCalCulation()
            {
                BankType     = 1,
                SalaryEarned = 25000,
                Allowances   = 1000,
                PensionType  = PensionType.Self
            };
            PensionDetail pensionDetail = null;

            repo = new Mock <IProcessRepo>();
            processPensionController = new ProcessPensionController(repo.Object);

            repo.Setup(r => r.GetClientInfo(pensionerInput.AadhaarNumber)).Returns(pensionDetail);
            repo.Setup(r => r.GetCalculationValues(pensionerInput.AadhaarNumber)).Returns(valueforCalculation);
            repo.Setup(r => r.GetDisbursementMessage(processpensioninput)).Returns(new HttpResponseMessage(HttpStatusCode.BadRequest));
            repo.Setup(r => r.CalcPensionAmount(25000, 1000, 1, PensionType.Self)).Returns(21500.00);


            var result = processPensionController.ProcessPension(pensionerInput);

            Assert.That(result, Is.Not.InstanceOf <OkObjectResult>());
        }
Example #2
0
        public int PostProcessPension(ProcessPensionInput processPensionInput)
        {
            ProcessPensionResponse response = provider.GetDisbursementResponse(processPensionInput);
            int responsecode = response.ProcessPensionStatusCode;

            return(responsecode);
        }
        public HttpResponseMessage GetDisbursementMessage(ProcessPensionInput pensionDetail)
        {
            _log4net.Info("Request to Get response from GetDisbursement API for aadhaar" + pensionDetail.AadhaarNo);

            HttpResponseMessage response = new();
            string uri = "http://localhost:47201/";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(uri);
                StringContent content = new(JsonConvert.SerializeObject(pensionDetail), Encoding.UTF8, "application/json");
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                try
                {
                    response = client.PostAsync("api/Disbursement", content).Result;
                }
                catch
                {
                    _log4net.Info("Error in  hitting DisbursementApi from ProcessPensionApi");
                    //response = null;
                }
            }
            _log4net.Info("Successfully get response from DisbursementApi");

            return(response);
        }
        public async Task <IActionResult> Inputs(string name, string pan, double aadaharNo, string type)
        {
            PensionerDetail pensioner = new PensionerDetail();
            //calling 2 microservice to get details from context
            HttpClient          client = _api.Initial();
            HttpResponseMessage res    = await client.GetAsync($"api/PensionerDetailss/{aadaharNo}");

            if (res.IsSuccessStatusCode)
            {
                var result = res.Content.ReadAsStringAsync().Result;
                pensioner = JsonConvert.DeserializeObject <PensionerDetail>(result);
                if (pensioner != null)
                {
                    if (pensioner.Name.Equals(name) && pensioner.PAN.Equals(pan) && pensioner.PensionType.Equals(type))
                    {
                        ProcessPensionInput processPensionInput = new ProcessPensionInput();
                        ProcesPensionOutput procesPensionOutput = new ProcesPensionOutput();
                        procesPensionOutput.DOB          = pensioner.DOB;
                        procesPensionOutput.Name         = pensioner.Name;
                        procesPensionOutput.PAN          = pensioner.PAN;
                        procesPensionOutput.PensionType  = pensioner.PensionType;
                        processPensionInput.AdhaarNumber = aadaharNo;

                        //Doing calculation
                        if (pensioner.PensionType == "Self")
                        {
                            processPensionInput.PensionAmount = pensioner.Salary * 80 / 100;
                        }
                        else
                        {
                            processPensionInput.PensionAmount = pensioner.Salary * 50 / 100;
                        }

                        if (pensioner.BankDetails.BankType == "Public")
                        {
                            processPensionInput.PensionAmount -= 500;
                        }
                        else
                        {
                            processPensionInput.PensionAmount -= 550;
                        }
                        processPensionInput.PensionAmount += pensioner.Allowances;
                        procesPensionOutput.PensionAmount  = processPensionInput.PensionAmount;

                        //calling 3 microservice for cross check by postApi of 2nd microservice(processPension)
                        HttpClient          client1         = new HttpClient();
                        StringContent       content         = new StringContent(JsonConvert.SerializeObject(processPensionInput), Encoding.UTF8, "application/json");
                        HttpResponseMessage responseMessage = await client1.PostAsync("https://localhost:44326/api/ProcessPension", content);

                        if (responseMessage.IsSuccessStatusCode)
                        {
                            return(Ok(procesPensionOutput));
                        }
                        return(NotFound("Calculation mistake"));
                    }
                    return(BadRequest("Invalid Details"));
                }
            }
            return(NotFound("Invalid Details"));
        }
        public async Task <int> DisburePension(ProcessPensionInput input)
        {
            PensionerDetails    pensioner = new PensionerDetails();
            HttpClient          client    = _pensionDetailApi.Initial();
            HttpResponseMessage res       = await client.GetAsync($"api/PensionerDetailss/{input.AdhaarNumber}");

            if (res.IsSuccessStatusCode)
            {
                var result = res.Content.ReadAsStringAsync().Result;
                pensioner = JsonConvert.DeserializeObject <PensionerDetails>(result);
                double currentAmount = pensioner.Salary;
                if (pensioner.PensionType == "Self")
                {
                    currentAmount = currentAmount * 80 / 100;
                }
                else
                {
                    currentAmount = currentAmount * 50 / 100;
                }
                currentAmount += pensioner.Allowances;
                if (pensioner.BankDetails.BankType == "Public")
                {
                    currentAmount -= 500;
                }
                else
                {
                    currentAmount -= 550;
                }
                if (currentAmount == input.PensionAmount)
                {
                    ProcessPensionStatusCode = 10;
                }
            }
            return(ProcessPensionStatusCode);
        }
        public HttpResponseMessage GetDisbursementMessage(ProcessPensionInput pensionDetail)
        {
            // provider = new ProcessProvider();

            HttpResponseMessage response = provider.GetDisbursementMessage(pensionDetail);

            return(response);
        }
        public void GetDisbursementMessage_Returns_Success(string aadhar, int pensionamount, int bankcharge)
        {
            ProcessPensionInput processPensionInput = new ProcessPensionInput()
            {
                AadhaarNumber = aadhar, BankCharge = bankcharge, PensionAmount = pensionamount
            };

            pro.Setup(r => r.GetDisbursementMessage(processPensionInput)).Returns(responseMessage);
            HttpResponseMessage res = pro.Object.GetDisbursementMessage(processPensionInput);

            Assert.AreEqual(res, responseMessage);
        }
        public void PensionerRepository_Invalid__Bankcharge_return_ErrorStatus(double pension, int charges, string aadhaar)
        {
            ProcessPensionInput processPensionInput = new ProcessPensionInput {
                AadhaarNo = aadhaar, BankCharge = charges, PensionAmount = pension
            };

            pro.Setup(p => p.GetData(aadhaar)).Returns(pensionDetail);
            PensionerDetail pensionerDetail = pro.Object.GetData(aadhaar);
            int             n = _pro.status(pensionerDetail, processPensionInput);

            Assert.AreEqual(21, n);
        }
Example #9
0
        public async Task <IActionResult> PensionNext(BankDetails bankDetails)
        {
            string         strUser        = TempData.Peek("ResponsePension").ToString();
            Pension        pension        = JsonConvert.DeserializeObject <Pension>(strUser);
            string         pensioner      = TempData.Peek("Pensioner").ToString();
            ProcessPension processpension = JsonConvert.DeserializeObject <ProcessPension>(pensioner);


            ProcessPensionInput processPensionInput = new ProcessPensionInput();

            processPensionInput.AadhaarNo     = processpension.AadhaarNo;
            processPensionInput.PensionAmount = (double)pension.PensionAmount;
            if (bankDetails.BankType == 1)
            {
                processPensionInput.BankCharge = 500;
            }
            else
            {
                processPensionInput.BankCharge = 550;
            }

            string apiResponse;

            using (var httpClient = new HttpClient())
            {
                StringContent content = new StringContent(JsonConvert.SerializeObject(processPensionInput), Encoding.UTF8, "application/json");


                using (var response = await httpClient.PostAsync("http://localhost:23578/api/ProcessPension/ProcessPension", content))
                {
                    apiResponse = await response.Content.ReadAsStringAsync();
                }
                if (apiResponse != "" || apiResponse != null)
                {
                    if (apiResponse == "10")
                    {
                        return(RedirectToAction("ResultPage", "ProcessPension", new { msg = "You have sucessfully Get pension" }));
                    }
                    if (apiResponse == "20")
                    {
                        TempData["errorResponse"] = "Pensioner Values not match";
                        return(RedirectToAction("ResultPage", "ProcessPension", new { msg = "Pensioner Values not match" }));
                    }
                    if (apiResponse == "21")
                    {
                        TempData["errorResponse"] = "Some Error Occured";
                        return(RedirectToAction("ResultPage", "ProcessPension", new { msg = "Some Error Occured" }));
                    }
                }
            }
            return(View());
        }
        public int GetDisbursePension(ProcessPensionInput pension)
        {
            _log4net.Info("Pensioner details from Process Pension Input");

            PensionerDetail   pensionerDetail    = new PensionerDetail();
            GetPensionDetails getPensionerDetail = new GetPensionDetails();

            pensionerDetail = getPensionerDetail.GetDetailResponse(pension.aadharNumber);


            if (pensionerDetail == null)
            {
                return(21);
            }

            int status = -1;
            int bankServiceCharge;

            if (pension.bankType == 1)
            {
                bankServiceCharge = 500;
            }
            else if (pension.bankType == 2)
            {
                bankServiceCharge = 550;
            }
            else
            {
                bankServiceCharge = 0;
            }
            double pensionCalculated;

            if (pensionerDetail.pensionType == 1)
            {
                pensionCalculated = (pensionerDetail.salaryEarned * 0.8) + pensionerDetail.allowances + bankServiceCharge;
            }
            else
            {
                pensionCalculated = (pensionerDetail.salaryEarned * 0.5) + pensionerDetail.allowances + bankServiceCharge;
            }
            if (Convert.ToDouble(pension.pensionAmount) == pensionCalculated)
            {
                status = 10;
            }
            else
            {
                status = 21;
            }
            return(status);
        }
Example #11
0
        public void DisbursementController_Invalid_Aadhaar_return_ErrorValue_21(string aadhaar)
        {
            ProcessPensionInput pensionInput = new ProcessPensionInput {
                AadhaarNo = aadhaar, BankCharge = 550, PensionAmount = 24450.0
            };

            pro.Setup(p => p.GetDetail(aadhaar)).Returns(pensionDetail);

            pro.Setup(p => p.status(pensionDetail, pensionInput)).Returns((aadhaar != pensionDetail.AadhaarNo) ? 21 : _pro.status(pensionDetail, pensionInput));
            var            response = controller.DisbursePension(pensionInput);
            OkObjectResult okresult = response as OkObjectResult;

            Assert.AreNotEqual(404, okresult.StatusCode);
        }
      public void DisbursementController_Valid_Aadhaar_return_OK_10(string aadhaar)
      {
          ProcessPensionInput pensionInput = new ProcessPensionInput {
              AadhaarNumber = aadhaar, BankCharge = 550, PensionAmount = 24450.0
          };

          pro.Setup(p => p.GetDetail(aadhaar)).Returns(pensionDetail);

          pro.Setup(p => p.status(pensionDetail, pensionInput)).Returns(_pro.status(pensionDetail, pensionInput));
          var            response = controller.DisbursePension(pensionInput);
          OkObjectResult okresult = response as OkObjectResult;

          Assert.AreEqual(200, okresult.StatusCode);
      }
      public void DisbursementController_Invalid_BankCharges_return_ErrorValue_21(int charges)
      {
          ProcessPensionInput pensionInput = new ProcessPensionInput {
              AadhaarNumber = "111122223333", BankCharge = charges, PensionAmount = 24450.0
          };

          pro.Setup(p => p.GetDetail(pensionInput.AadhaarNumber)).Returns(pensionDetail);

          pro.Setup(p => p.status(pensionDetail, pensionInput)).Returns(_pro.status(pensionDetail, pensionInput));
          var            response = controller.DisbursePension(pensionInput);
          OkObjectResult okresult = response as OkObjectResult;

          Assert.AreNotEqual(404, okresult.StatusCode);
      }
        public int status(PensionerDetail pensionerDetail, ProcessPensionInput input)
        {
            if (input.PensionAmount == 0)
            {
                return(21);
            }

            if (pensionerDetail.PensionType == 1)
            {
                amount = (double)pensionerDetail.Salary * 0.8;
            }
            else if (pensionerDetail.PensionType == 2)
            {
                amount = (double)pensionerDetail.Salary * 0.5;
            }
            if (pensionerDetail.BankType == 1)
            {
                finalamount = amount - 500;
            }
            else if (pensionerDetail.BankType == 2)
            {
                finalamount = amount - 550;
            }

            if (pensionerDetail.BankType == 1)
            {
                if (input.PensionAmount == finalamount && input.BankCharge == 500)
                {
                    return(10);
                }
            }
            if (pensionerDetail.BankType == 2)
            {
                if (input.PensionAmount == finalamount && input.BankCharge == 550)
                {
                    return(10);
                }
            }

            else if (input.PensionAmount == amount && pensionerDetail.BankType == 1)
            {
                return(20);
            }
            else if (input.PensionAmount == amount && pensionerDetail.BankType == 2)
            {
                return(20);
            }
            return(21);
        }
        public IActionResult DisbursePension(ProcessPensionInput processPensionInput)
        {
            _log4net.Info("Pension Disbursement started");
            _log4net.Info("Person with Aadhar Number " + processPensionInput.AadhaarNo);

            pensionerDetail = _repo.GetDetail(processPensionInput.AadhaarNo);


            _log4net.Info("PensionerDetail Present Name:" + pensionerDetail.Name);



            processPensionResponse.ProcessPensionStatusCode = _repo.status(pensionerDetail, processPensionInput);
            _log4net.Info(processPensionResponse.ProcessPensionStatusCode);
            return(Ok(processPensionResponse));
        }
        public void GetDisbursementMessage_Returns_Fail(string aadhar, int pensionamount, int bankcharge)
        {
            ProcessPensionInput processPensionInput = new ProcessPensionInput()
            {
                AadhaarNumber = aadhar, BankCharge = bankcharge, PensionAmount = pensionamount
            };

            HttpStatusCode      badcode = HttpStatusCode.BadRequest;
            HttpResponseMessage bad     = new HttpResponseMessage(badcode);

            pro.Setup(r => r.GetDisbursementMessage(processPensionInput)).Returns(responseMessage);

            HttpResponseMessage res = pro.Object.GetDisbursementMessage(processPensionInput);

            Assert.AreNotEqual(res, bad);
        }
        public void PensionerRepository_Invalid__Aadhaar_return_ErrorStatus(double pension, int charges, string aadhaar)
        {
            ProcessPensionInput processPensionInput = new ProcessPensionInput {
                AadhaarNo = aadhaar, BankCharge = charges, PensionAmount = pension
            };
            int n = 10;

            pro.Setup(p => p.GetData(aadhaar)).Returns(pensionDetail);
            PensionerDetail pensionerDetail = pro.Object.GetData(aadhaar);

            if (pensionDetail.AadhaarNo != aadhaar)
            {
                n = 21;
            }

            Assert.AreNotEqual(10, n);
        }
        public async Task <IActionResult> ProcessPension(ProcessPensionInput processPensionInput)
        {
            //calling 3 microservice for cross check
            HttpClient    client   = PensionDisbursmentApi.Initial();
            StringContent content  = new StringContent(JsonConvert.SerializeObject(processPensionInput), Encoding.UTF8, "application/json");
            var           response = await client.PostAsync("api/Disbursement", content);

            if (response.IsSuccessStatusCode)
            {
                var res    = response.Content.ReadAsStringAsync().Result;
                int result = JsonConvert.DeserializeObject <int>(res);
                if (result == 10)
                {
                    return(Ok());
                }
            }
            return(NotFound());
        }
Example #19
0
        public int GetDisbursePension(ProcessPensionInput pension)
        {
            _log4net.Info("Pension Amount is Being Validated");
            PensionerDetail pensionerDetail    = new PensionerDetail();
            ServiceWrapper  getPensionerDetail = new ServiceWrapper(configuration);

            pensionerDetail = getPensionerDetail.GetDetailResponse(pension.AadharNumber);


            if (pensionerDetail == null)
            {
                return(21);
            }
            int bankServiceCharge;

            if (pension.BankType == 1)
            {
                bankServiceCharge = 500;
            }
            else if (pension.BankType == 2)
            {
                bankServiceCharge = 550;
            }
            else
            {
                bankServiceCharge = 0;
            }
            double pensionCalculated;

            pensionCalculated = CalculatePensionLogic(pensionerDetail.SalaryEarned, pensionerDetail.Allowances, bankServiceCharge, pensionerDetail.PensionType);


            int processPensionStatusCode;

            if (Convert.ToDouble(pension.PensionAmount) == pensionCalculated)
            {
                processPensionStatusCode = 10;
            }
            else
            {
                processPensionStatusCode = 21;
            }
            return(processPensionStatusCode);
        }
        public ProcessPensionResponse GetDisbursementResponse(ProcessPensionInput pensionDetail)
        {
            ProcessPensionResponse res;
            HttpResponseMessage    response = GetDisbursementMessage(pensionDetail);

            if (response == null)
            {
                res = null;
                return(res);
            }
            string responseValue = response.Content.ReadAsStringAsync().Result;

            res = JsonConvert.DeserializeObject <ProcessPensionResponse>(responseValue);
            if (res == null)
            {
                return(null);
            }
            return(res);
        }
Example #21
0
        public void ProcessPension_WhenCalled_ReturnsPensionDetail()
        {
            ProcessPensionInput processpensioninput = new ProcessPensionInput()
            {
                AadhaarNumber = "111122223333",
                BankCharge    = 550,
                PensionAmount = 25500
            };
            ValueforCalCulation valueforCalculation = new ValueforCalCulation()
            {
                BankType     = 1,
                SalaryEarned = 25000,
                Allowances   = 1000,
                PensionType  = PensionType.Self
            };
            PensionDetail pensionDetail = new PensionDetail()
            {
                Name          = "Sahil",
                DateOfBirth   = new DateTime(1998 - 03 - 01),
                Pan           = "BCFPN1234F",
                AadharNumber  = "111122223333",
                PensionType   = PensionType.Self,
                PensionAmount = 35000,
                BankType      = 1,
                Status        = 21,
            };

            repo = new Mock <IProcessRepo>();
            processPensionController = new ProcessPensionController(repo.Object);

            repo.Setup(r => r.GetClientInfo(pensionerInput.AadhaarNumber)).Returns(pensionDetail);
            repo.Setup(r => r.GetCalculationValues(pensionerInput.AadhaarNumber)).Returns(valueforCalculation);
            repo.Setup(r => r.GetDisbursementMessage(processpensioninput)).Returns(new HttpResponseMessage(HttpStatusCode.OK));
            repo.Setup(r => r.CalcPensionAmount(25000, 1000, 1, PensionType.Self)).Returns(21500.00);


            var result = processPensionController.ProcessPension(pensionerInput);

            Assert.That(result, Is.InstanceOf <OkObjectResult>());
        }
        public int status(PensionerDetail pensionerDetail, ProcessPensionInput input)
        {
            if (input.PensionAmount == 0)
            {
                return(21);
            }
            if (input.BankCharge == 0 || (pensionerDetail.BankType == BankType.Private && input.BankCharge != 550) ||
                (pensionerDetail.BankType == BankType.Public && input.BankCharge != 500))
            {
                return(21);
            }
            double rate = (pensionerDetail.PensionType == PensionTypeValue.Family) ? 0.5 : 0.8;

            double pension = (rate * pensionerDetail.SalaryEarned) + pensionerDetail.Allowances + input.BankCharge;

            //_log4net.Debug("pension" + pension);
            if (pension != input.PensionAmount)
            {
                return(21);
            }
            return(10);
        }
        public HttpResponseMessage GetDisbursementMessage(ProcessPensionInput processInput)
        {
            string uriConn2 = "http://52.191.87.4/";
            HttpResponseMessage response = new HttpResponseMessage();

            using (var client1 = new HttpClient())
            {
                client1.BaseAddress = new Uri(uriConn2);
                StringContent content = new StringContent(JsonConvert.SerializeObject(processInput), Encoding.UTF8, "application/json");
                client1.DefaultRequestHeaders.Clear();
                client1.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                try
                {
                    response = client1.PostAsync("api/Disbursement", content).Result;
                }
                catch (Exception e)
                {
                    _log4net.Error("Exception Occured" + e);
                    response = null;
                }
            }

            return(response);
        }
        public int GetPension(ProcessPensionInput pensionInput)
        {
            _log4net.Info("ProcessPension post method is invoked for aadhaar" + pensionInput.AadhaarNo);

            return(repo.PostProcessPension(pensionInput));
        }
Example #25
0
        public PensionDetail ProcessPension(ProcessPensionInput processPensionInput)
        {
            _log4net.Info("Pensioner details invoked from Client Input");
            ProcessPensionInput client = new ProcessPensionInput();

            client.Name         = processPensionInput.Name;
            client.AadharNumber = processPensionInput.AadharNumber;
            client.Pan          = processPensionInput.Pan;
            client.DateOfBirth  = processPensionInput.DateOfBirth;
            client.PensionType  = processPensionInput.PensionType;

            PensionDetailCall   pension       = new PensionDetailCall(configuration);
            ProcessPensionInput pensionDetail = pension.GetClientInfo(client.AadharNumber);

            if (pensionDetail == null)
            {
                PensionDetail mvc = new PensionDetail();
                mvc.Name          = "";
                mvc.Pan           = "";
                mvc.PensionAmount = 0;
                mvc.DateOfBirth   = new DateTime(2000, 01, 01);
                mvc.BankType      = 1;
                mvc.AadharNumber  = "***";
                mvc.Status        = 20;
                return(mvc);
            }



            double pensionAmount;

            ValueforCalCulation pensionerInfo = pension.GetCalculationValues(client.AadharNumber);

            pensionAmount = CalculatePensionAmount(pensionerInfo.SalaryEarned, pensionerInfo.Allowances, pensionerInfo.BankType, pensionerInfo.PensionType);

            int statusCode;

            PensionDetail mvcClientOutput = new PensionDetail();

            if (client.Pan.Equals(pensionDetail.Pan) && client.Name.Equals(pensionDetail.Name) && client.PensionType.Equals(pensionDetail.PensionType) && client.DateOfBirth.Equals(pensionDetail.DateOfBirth))
            {
                mvcClientOutput.Name          = pensionDetail.Name;
                mvcClientOutput.Pan           = pensionDetail.Pan;
                mvcClientOutput.PensionAmount = pensionAmount;
                mvcClientOutput.DateOfBirth   = pensionDetail.DateOfBirth.Date;
                mvcClientOutput.PensionType   = pensionerInfo.PensionType;
                mvcClientOutput.BankType      = pensionerInfo.BankType;
                mvcClientOutput.AadharNumber  = pensionDetail.AadharNumber;
                mvcClientOutput.Status        = 20;
            }
            else
            {
                mvcClientOutput.Name          = "";
                mvcClientOutput.Pan           = "";
                mvcClientOutput.PensionAmount = 0;
                mvcClientOutput.DateOfBirth   = new DateTime(2000, 01, 01);
                mvcClientOutput.PensionType   = pensionerInfo.PensionType;
                mvcClientOutput.BankType      = 1;
                mvcClientOutput.AadharNumber  = "****";
                mvcClientOutput.Status        = 21;

                return(mvcClientOutput);
            }


            string uriConn2 = configuration.GetValue <string>("MyUriLink:PensionDisbursementLink");
            HttpResponseMessage response = new HttpResponseMessage();

            using (var client1 = new HttpClient())
            {
                client1.BaseAddress = new Uri(uriConn2);
                StringContent content = new StringContent(JsonConvert.SerializeObject(mvcClientOutput), Encoding.UTF8, "application/json");
                client1.DefaultRequestHeaders.Clear();
                client1.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                try
                {
                    response = client1.PostAsync("api/PensionDisbursement", content).Result;
                }
                catch (Exception e)
                {
                    _log4net.Error("Exception Occured" + e);
                    response = null;
                }
            }
            if (response != null)
            {
                string status = response.Content.ReadAsStringAsync().Result;
                //statusCode = Int32.Parse(status);
                Result result = JsonConvert.DeserializeObject <Result>(status);
                statusCode             = result.result;
                mvcClientOutput.Status = statusCode;

                return(mvcClientOutput);
            }
            return(mvcClientOutput);
        }
        public IActionResult ProcessPension(PensionerInput processPensionInput)
        {
            _log4net.Info("Pensioner details invoked from Client Input");
            PensionerInput client = new PensionerInput();

            client.Name          = processPensionInput.Name;
            client.AadhaarNumber = processPensionInput.AadhaarNumber;
            client.PAN           = processPensionInput.PAN;
            client.DateOfBirth   = processPensionInput.DateOfBirth;
            client.PensionType   = processPensionInput.PensionType;

            //repo = new ProcessRepo(pro);
            PensionDetail pensionDetail = _repo.GetClientInfo(client.AadhaarNumber);

            if (pensionDetail == null)
            {
                PensionDetail mvc = new PensionDetail();
                mvc.Name          = "";
                mvc.Pan           = "";
                mvc.PensionAmount = 0;
                mvc.DateOfBirth   = new DateTime(2000, 01, 01);
                mvc.BankType      = 1;
                mvc.AadharNumber  = "***";
                mvc.Status        = 20;

                return(NotFound());
            }



            double pensionAmount;

            ValueforCalCulation pensionerInfo = _repo.GetCalculationValues(client.AadhaarNumber);

            pensionAmount = CalculatePensionAmount(pensionerInfo.SalaryEarned, pensionerInfo.Allowances, pensionerInfo.BankType, pensionerInfo.PensionType);

            int statusCode;

            PensionDetail mvcClientOutput = new PensionDetail();

            if (client.AadhaarNumber.Equals(pensionDetail.AadharNumber))
            {
                mvcClientOutput.Name          = pensionDetail.Name;
                mvcClientOutput.Pan           = pensionDetail.Pan;
                mvcClientOutput.PensionAmount = pensionAmount;
                mvcClientOutput.DateOfBirth   = pensionDetail.DateOfBirth.Date;
                mvcClientOutput.PensionType   = pensionerInfo.PensionType;
                mvcClientOutput.BankType      = pensionerInfo.BankType;
                mvcClientOutput.AadharNumber  = pensionDetail.AadharNumber;
                mvcClientOutput.Status        = 20;
            }
            else
            {
                mvcClientOutput.Name          = "";
                mvcClientOutput.Pan           = "";
                mvcClientOutput.PensionAmount = 0;
                mvcClientOutput.DateOfBirth   = new DateTime(2000, 01, 01);
                mvcClientOutput.PensionType   = pensionerInfo.PensionType;
                mvcClientOutput.BankType      = 1;
                mvcClientOutput.AadharNumber  = "****";
                mvcClientOutput.Status        = 21;

                //return mvcClientOutput;
            }

            ProcessPensionInput input = new ProcessPensionInput();

            input.AadhaarNumber = mvcClientOutput.AadharNumber;
            input.PensionAmount = mvcClientOutput.PensionAmount;
            if (mvcClientOutput.BankType == 1)
            {
                input.BankCharge = 500;
            }
            else
            {
                input.BankCharge = 550;
            }



            HttpResponseMessage response = _repo.GetDisbursementMessage(input);

            if (response != null)
            {
                string status = response.Content.ReadAsStringAsync().Result;
                //statusCode = Int32.Parse(status);
                ProcessPensionResponse res = JsonConvert.DeserializeObject <ProcessPensionResponse>(status);

                statusCode      = res.processPensionStatusCode;
                processResponse = new ProcessResponse()
                {
                    Status        = statusCode,
                    PensionAmount = mvcClientOutput.PensionAmount
                };

                return(Ok(processResponse));
            }
            return(Ok(processResponse));
        }