public ValueforCalCulation GetCalculationValues(string aadhar)
        {
            //provider = new ProcessProvider();
            ValueforCalCulation value = provider.GetCalculationValues(aadhar);

            return(value);
        }
Ejemplo n.º 2
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>());
        }
        public void GetCalculationValues_Returns_CorrectValues(string aadhar)
        {
            pro.Setup(r => r.GetCalculationValues(aadhar)).Returns(valueforCalCulation);
            ValueforCalCulation values = pro.Object.GetCalculationValues(aadhar);

            Assert.AreEqual(values, valueforCalCulation);
        }
 public void Setup()
 {
     //pro = new Mock<IProcessProvider>();
     responseMessage = new HttpResponseMessage(statusCode);
     pensionDetail   = new PensionDetail()
     {
         Name          = "Ritik",
         Pan           = "BCFPN1234F",
         PensionAmount = 25000,
         DateOfBirth   = new DateTime(2000, 01, 01),
         PensionType   = PensionType.Self,
         BankType      = 1,
         AadharNumber  = "111122223333",
         Status        = 21
     };
     valueforCalCulation = new ValueforCalCulation()
     {
         Allowances = 1000, BankType = 1, PensionType = PensionType.Self, SalaryEarned = 25000
     };
 }
Ejemplo n.º 5
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>());
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Getting the values for calculation
        /// </summary>
        /// <param name="aadhar"></param>
        /// <returns>Values required for calculation</returns>
        public ValueforCalCulation GetCalculationValues(string aadhar)
        {
            PensionerDetail     res      = new PensionerDetail();
            HttpResponseMessage response = PensionDetail(aadhar);

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

            res = JsonConvert.DeserializeObject <PensionerDetail>(responseValue);

            ValueforCalCulation Values = new ValueforCalCulation()
            {
                SalaryEarned = res.SalaryEarned,
                Allowances   = res.Allowances,
                BankType     = (int)res.BankType,
                PensionType  = (PensionType)res.PensionType
            };

            return(Values);
        }
Ejemplo n.º 7
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));
        }