public IHttpActionResult PostInsuranceRegistration(InsuranceApp regfom)
        {
            tblInsurance tblInsurance = new tblInsurance();

            tblInsurance.Season          = regfom.Season;
            tblInsurance.Area            = regfom.Area;
            tblInsurance.FarmerId        = Convert.ToInt32(regfom.Farmerid);
            tblInsurance.CompanyName     = regfom.CompanyName;
            tblInsurance.SumInsured      = regfom.SumAssured;
            tblInsurance.Year            = regfom.Year;
            tblInsurance.DateOfInsurance = DateTime.Today;
            tblInsurance.Crop            = regfom.CropName;
            db.tblInsurances.Add(tblInsurance);
            db.SaveChanges();
            return(Ok("OK"));
        }
Example #2
0
        public ActionResult Create(InsuranceApp obj)
        {
            String errorString = checkDrivers(obj.DriverDetails);

            if (String.IsNullOrEmpty(errorString))
            {
                if (obj.PolStartDate == null)
                {
                    errorString = "Policy Start date incorrect.";
                    goto failed;
                }
                else if (obj.PolStartDate < DateTime.Now.Date)
                {
                    errorString = "Start Date of Policy.";
                    goto failed;
                }
                TempData["insuranceClaim"] = obj;
                return(RedirectToAction("CalcResult"));
            }

failed:
            ModelState.AddModelError("TestError", errorString);
            return(View(obj));
        }
Example #3
0
        public ActionResult CalcResult()
        {
            InsuranceApp obj = (InsuranceApp)TempData["insuranceClaim"];

            if (obj != null)
            {
                double premimumPrice   = 500;
                int    ageOfYoungest   = 1000;
                bool   chauDriver      = false;
                bool   countDriver     = false;
                int    polClaims       = 0;
                bool   declined        = false;
                int    countNumDrivers = 0;

                foreach (InsuranceApp.Driver carDriver in obj.DriverDetails)
                {
                    if (!String.IsNullOrEmpty(carDriver.Name))
                    {
                        int driverClaims = 0;
                        countNumDrivers++;

                        if (CalculateAge(carDriver.DOB) < 21 || CalculateAge(carDriver.DOB) > 75)
                        {
                            ModelState.AddModelError("TestError", "Age of " + (CalculateAge(carDriver.DOB) < 21 ? "Youngest" : "Oldest") + " Driver.");
                            declined = true;
                        }


                        if ((String.Compare(carDriver.Occupation, "Chauffer") == 0) && (chauDriver == false))
                        {
                            premimumPrice *= 1.1;
                            chauDriver     = true;
                        }
                        if ((String.Compare(carDriver.Occupation, "Accountant") == 0) && (countDriver == false))
                        {
                            premimumPrice *= 0.9;
                            countDriver    = true;
                        }
                        if (CalculateAge(carDriver.DOB) < ageOfYoungest)
                        {
                            ageOfYoungest = CalculateAge(carDriver.DOB);
                        }

                        foreach (InsuranceApp.Driver.DateTimeWrapper claimDate in carDriver.Claims)
                        {
                            if (claimDate.ClaimDate != null)
                            {
                                polClaims++;
                                if (polClaims > 3)
                                {
                                    ModelState.AddModelError("TestError", "Policy has more than 3 claims.");
                                    declined = true;
                                }
                                driverClaims++;
                                if (driverClaims > 2)
                                {
                                    ModelState.AddModelError("TestError", "Driver " + carDriver.Name + " has more than 2 claims.");
                                    declined = true;
                                }

                                if ((claimDate.ClaimDate - obj.PolStartDate) < new TimeSpan(365, 0, 0, 0, 0))
                                {
                                    premimumPrice *= 1.2;
                                }
                                if (((claimDate.ClaimDate - obj.PolStartDate) < new TimeSpan((365 * 5), 0, 0, 0, 0)) && ((claimDate.ClaimDate - obj.PolStartDate) >= new TimeSpan((365 * 2), 0, 0, 0, 0)))
                                {
                                    premimumPrice *= 1.1;
                                }
                            }
                        }
                        if (ageOfYoungest >= 21 && ageOfYoungest <= 25)
                        {
                            premimumPrice *= 1.2;
                        }
                        if (ageOfYoungest >= 26 && ageOfYoungest <= 75)
                        {
                            premimumPrice *= 0.9;
                        }
                    }
                }
                obj.PremimumPrice    = ((declined == true) ? 0 : premimumPrice);
                ViewBag.TotalDrivers = countNumDrivers;
                return(View(obj));
            }
            obj = new InsuranceApp();
            obj.PremimumPrice = 0;
            return(View(obj));
        }