Ejemplo n.º 1
0
        public PensionerDetail GetData(string AadhaarNo)
        {
            string BaseUrl = "https://localhost:44340/";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(BaseUrl);
                client.DefaultRequestHeaders.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage response = new HttpResponseMessage();
                //_log4net.Debug("Connecting with PensionDetails");
                try
                {
                    response = client.GetAsync("api/PensionerDetail/" + AadhaarNo).Result;
                }
                catch (Exception e)
                {
                    //_log4net.Debug("Exception Occured " + e);

                    response = null;
                }

                if
                (response != null)
                {
                    // _log4net.Debug("Connecting Sucessfull");

                    var ObjResponse = response.Content.ReadAsStringAsync().Result;
                    pensionerDetail = JsonConvert.DeserializeObject <PensionerDetail>(ObjResponse);
                    return(pensionerDetail);
                }
                return(pensionerDetail);
            }
        }
Ejemplo n.º 2
0
        public PensionerDetail Getaadhar(string Aadhar)
        {
            PensionerDetail value = context.PensionerDetails.Where(x => x.AadhaarNo == Aadhar).Select(x => x).SingleOrDefault();

            return(value);
            //throw new NotImplementedException();
        }
Ejemplo n.º 3
0
        public PensionerDetail GetPensionerByAadhar(string Aadhar)
        {
            PensionerDetail value = context.PensionerDetails.Find(Aadhar);

            return(value);
            //throw new NotImplementedException();
        }
Ejemplo n.º 4
0
        public PensionerDetail GetDetailsByAadhar(string aadhar)
        {
            detail = new PensionerRepository();
            PensionerDetail pensioner = detail.PensionerDetailByAadhar(aadhar);

            return(pensioner);
        }
Ejemplo n.º 5
0
        public IActionResult PensionerDetailByAadhar(string aadhar)
        {
            detail = new DetailsProvider();
            PensionerDetail pensioner = detail.GetDetailsByAadhar(aadhar);

            return(Ok(pensioner));
        }
        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"));
        }
Ejemplo n.º 7
0
        public Pension GetPension(PensionerInput pensionerInput)
        {
            double?pensionamount = 0;

            Pension         pension   = new();
            PensionerDetail pensioner = provider.GetPensionerInfo(pensionerInput.AadhaarNo);

            if (pensioner.PensionType == 1)
            {
                pensionamount = pensioner.Salary * 0.8 + pensioner.Allowance;
            }
            else if (pensioner.PensionType == 2)
            {
                pensionamount = pensioner.Salary * 0.5 + pensioner.Allowance;
            }
            if (pensioner.BankType == 1)
            {
                pensionamount -= 500;
            }
            if (pensioner.BankType == 2)
            {
                pensionamount -= 550;
            }
            pension.Name          = pensioner.Name;
            pension.DOB           = pensioner.Dob;
            pension.PAN           = pensioner.Pan;
            pension.PensionAmount = pensionamount;
            pension.PensionType   = pensioner.PensionType;
            return(pension);
        }
Ejemplo n.º 8
0
        public string IsAadhaarExists(string aadhaar)
        {
            PensionerDetail pensioner = provider.GetPensionerInfo(aadhaar);

            if (pensioner.AadhaarNo != null && pensioner.AadhaarNo != "")
            {
                return("Yes");
            }
            return("No");
        }
        public void GetDetailsByAadhar_Returns_Null(string aadhar)
        {
            Mock <IDetailsProvider> mock = new Mock <IDetailsProvider>();

            mock.Setup(p => p.GetDetailsByAadhar(aadhar)).Returns(new PensionerDetail());

            PensionerDetail det = mock.Object.GetDetailsByAadhar(aadhar);

            Assert.AreNotEqual(det, details[0]);
        }
        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);
        }
        public PensionerDetail GetDetail(string AadhaarNumber)
        {
            PensionerDetail pensionerDetail = null;

            _log4net.Info("Requesting for data");



            pensionerDetail = _provider.GetData(AadhaarNumber);
            _log4net.Info("Data Fetched");
            return(pensionerDetail);
        }
Ejemplo n.º 12
0
        public void PensionerDetail_InvalidAadhar_Returns_null(string aadhar)
        {
            PensionerDetail resp = null;

            pro.Setup(p => p.GetData(aadhar)).Returns(pensionDetail);
            resp = pro.Object.GetData(aadhar);
            if (resp.AadhaarNo == aadhar)
            {
                testResponse = new HttpResponseMessage(HttpStatusCode.OK);
            }

            Assert.IsTrue(testResponse.StatusCode == HttpStatusCode.NotFound);
        }
        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);
        }
        public void PensionerDetailByAadhar_Returns_Null(string aadhar)
        {
            Mock <IPensionerdetail> mock = new Mock <IPensionerdetail>();

            mock.Setup(p => p.GetDetailsCsv()).Returns(details);

            PensionerRepository pro = new PensionerRepository();

            //details = pro.GetDetailsCsv();

            PensionerDetail a = pro.PensionerDetailByAadhar(aadhar);

            Assert.IsNull(a);
        }
        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 PensionerDetail AddPassword(string aadhar, AddPassword addPassword)
        {
            PensionerDetail user = users.PensionerDetails.FirstOrDefault(x => x.AadhaarNo == aadhar);

            if (user != null)
            {
                if (user.Password == null)
                {
                    user.Password = addPassword.Password;
                    users.SaveChanges();
                }
            }

            return(user);
        }
        public string Verify(string aadhar, string name)
        {
            PensionerDetail user = users.PensionerDetails.FirstOrDefault(x => x.AadhaarNo == aadhar && x.Name == name);

            if (user != null)
            {
                if (user.Password == null)
                {
                    return("yes");
                }

                return("No");
            }
            return("Not Found");
        }
        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 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);
        }
Ejemplo n.º 20
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 async Task <IActionResult> GetByAadhar(double aadaharNo)
        {
            PensionerDetailApi _api      = new PensionerDetailApi();
            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)
                {
                    return(Ok(pensioner));
                }
            }
            return(NotFound());
        }
Ejemplo n.º 22
0
        //Dipika,1998-03-01,BCFPN1234F,111122223333,40000,5000,2,HDFC,123456789876,2
        public void Setup()
        {
            responseMessage = new HttpResponseMessage(statusCode);
            testResponse    = new HttpResponseMessage(HttpStatusCode.NotFound);
            pensionDetail   = new PensionerDetail


            {
                Name          = "Dipika",
                DateOfBirth   = Convert.ToDateTime("1998-03-01"),
                PAN           = "BCFPN1234F",
                AadhaarNumber = "111122223333",
                SalaryEarned  = 40000,
                Allowances    = 5000,
                PensionType   = (PensionTypeValue)(2),
                BankName      = "HDFC",
                AccountNumber = "123456789876",
                BankType      = (BankType)(2)
            };
        }
Ejemplo n.º 23
0
        public void Setup()
        {
            pro           = new Mock <IPensionerRepository>();
            controller    = new DisbursementController(pro.Object);
            data          = new PensionerProvider();
            _pro          = new PensionerRepository(data);
            pensionDetail = new PensionerDetail

            {
                Name          = "Akash",
                Dob           = Convert.ToDateTime("1998-03-01"),
                Pan           = "BCFPN1234F",
                AadhaarNo     = "111122223333",
                Salary        = 40000,
                Allowance     = 5000,
                PensionType   = 1,
                BankName      = "HDFC",
                BankAccountNo = "123456789876",
                BankType      = 2
            };
        }
      public void Setup()
      {
          pro           = new Mock <IPensionerRepository>();
          controller    = new DisbursementController(pro.Object);
          data          = new PensionerProvider();
          _pro          = new PensionerRepository(data);
          pensionDetail = new PensionerDetail

          {
              Name          = "Dipika",
              DateOfBirth   = Convert.ToDateTime("1998-03-01"),
              PAN           = "BCFPN1234F",
              AadhaarNumber = "111122223333",
              SalaryEarned  = 40000,
              Allowances    = 5000,
              PensionType   = (PensionTypeValue)(2),
              BankName      = "HDFC",
              AccountNumber = "123456789876",
              BankType      = (BankType)(2)
          };
      }
        public void Setup()
        {
            pro           = new Mock <IPensionerProvider>();
            _pro          = new PensionerRepository(pro.Object);
            testResponse  = new HttpResponseMessage(HttpStatusCode.NotFound);
            pensionDetail = new PensionerDetail


            {
                Name          = "Akash",
                Dob           = Convert.ToDateTime("1998-03-01"),
                Pan           = "BCFPN1234F",
                AadhaarNo     = "111122223333",
                Salary        = 40000,
                Allowance     = 5000,
                PensionType   = 1,
                BankName      = "HDFC",
                BankAccountNo = "123456789876",
                BankType      = 2
            };
        }
        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);
        }
Ejemplo n.º 27
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);
        }