public decimal GetQuote(CarQuote carquote) { decimal basequote = 50.00m; var agefrombirthdaycalculator = new AgeFromBirthdayCalculator(); var age = agefrombirthdaycalculator.getAgeFromBirthday(Convert.ToDateTime(carquote.DOB)); var agecostcalculator = new AgeCostCalculator(); decimal extraCostBecauseOfAge = agecostcalculator.getExtraCostBecauseOfAge(age); decimal quote = basequote + extraCostBecauseOfAge; var caryearcostcalculator = new CarYearCostCalculator(); quote += caryearcostcalculator.getExtraCostBecauseOfCarYear(Convert.ToInt32(carquote.CarYear)); var carmodelmakecostcalculator = new CarModelMakeCostCalculator(); quote += carmodelmakecostcalculator.getCostBecauseOfCarModelAndMake(carquote.CarModel, carquote.CarMake); var speedingticketcostcalculator = new SpeedingTicketCostCalculator(); quote += speedingticketcostcalculator.getCostBecauseOfNumberOfSpeedingTickets(Convert.ToInt32(carquote.NumberSpeedingTickets)); var duicostcalculator = new DUICostCalculator(); quote += duicostcalculator.getCostBecauseOfDUI(Convert.ToBoolean(carquote.DUI), quote); var fullcoveragecostcalculator = new FullCoverageCostCalculator(); quote += fullcoveragecostcalculator.getCostBecauseOfCoverageType(carquote.FullOrLiability, quote); return(quote); }
public ActionResult EnterCarInfo(string firstname, string lastname, string email, string dob, string caryear, string carmake, string carmodel, string numberspeedingtickets, string fullorliability, string dui) { if (string.IsNullOrEmpty(firstname) || string.IsNullOrEmpty(lastname) || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(carmake) || string.IsNullOrEmpty(carmodel) || string.IsNullOrEmpty(fullorliability) || string.IsNullOrEmpty(dob) || string.IsNullOrEmpty(caryear) || string.IsNullOrEmpty(numberspeedingtickets) || string.IsNullOrEmpty(dui)) { return(View("~/Views/Shared/Error.cshtml")); } else { using (CarQuoteDBEntities db = new CarQuoteDBEntities()) { var carquote = new CarQuote(); carquote.FirstName = firstname; carquote.LastName = lastname; carquote.Email = email; carquote.DOB = Convert.ToDateTime(dob); carquote.CarYear = Convert.ToInt32(caryear); carquote.CarMake = carmake; carquote.CarModel = carmodel; carquote.DUI = Convert.ToBoolean(dui); carquote.NumberSpeedingTickets = Convert.ToInt32(numberspeedingtickets); carquote.FullOrLiability = fullorliability; var quotecalculator = new QuoteCalculator(); carquote.Quote = quotecalculator.GetQuote(carquote); db.CarQuotes.Add(carquote); db.SaveChanges(); return(View("ShowQuote", carquote)); } } }
public ActionResult ProcessCarSeeker(string firstName, string lastName, string emailAddress, DateTime dateOfBirth, DateTime carYear, string carMake, string carModel, bool?hasHadDUI, int?speedingTickets, bool?coverageVsLiability) { using (CarQuotesDBEntities db = new CarQuotesDBEntities()) { var carSeeker = new CarSeeker(); carSeeker.FirstName = firstName; carSeeker.LastName = lastName; carSeeker.EmailAddress = emailAddress; carSeeker.DateOfBirth = dateOfBirth; carSeeker.CarYear = carYear; carSeeker.CarMake = carMake; carSeeker.CarModel = carModel; if (Request.Form["HasHadDUI"] == "Yes") { carSeeker.HasHadDUI = true; } else { carSeeker.HasHadDUI = false; } carSeeker.SpeedingTickets = speedingTickets; if (Request.Form["CoverageVsLiability"] == "Full Coverage") { carSeeker.CoverageVsLiability = true; } else { carSeeker.CoverageVsLiability = false; } db.CarSeekers.Add(carSeeker); db.SaveChanges(); var carSeekerProcessed = new CarSeekerProcessed(); var carSeekersProcessed = new List <CarSeekerProcessed>(); int finalQuote = 50; CarQuote.CalculateQuote(carSeeker, out finalQuote); carSeekerProcessed.FirstName = carSeeker.FirstName; carSeekerProcessed.LastName = carSeeker.LastName; carSeekerProcessed.EmailAddress = carSeeker.EmailAddress; carSeekerProcessed.DateOfBirth = carSeeker.DateOfBirth; carSeekerProcessed.CarYear = carSeeker.CarYear; carSeekerProcessed.CarMake = carSeeker.CarMake; carSeekerProcessed.CarModel = carSeeker.CarModel; carSeekerProcessed.HasHadDUI = carSeeker.HasHadDUI; carSeekerProcessed.SpeedingTickets = carSeeker.SpeedingTickets; carSeekerProcessed.CoverageVsLiability = carSeeker.CoverageVsLiability; carSeekerProcessed.FinalQuote = finalQuote; carSeekersProcessed.Add(carSeekerProcessed); return(View("YourQuote", carSeekersProcessed)); } }
public ActionResult CarQuote(string firstName, string lastName, string emailAddress, string DOB, int carYear, string carMake, string carModel, bool DUI, int numberOfSpeedingTickets, string coverageType) { double quoteFinal = 50; // base price // calculate age and modify quote as needed DateTime dateOfBirth = DateTime.Parse(DOB); DateTime currentDate = DateTime.Now; int age = currentDate.Year - dateOfBirth.Year; if (dateOfBirth.DayOfYear > currentDate.DayOfYear) { age--; } if (age < 25 && age >= 18) { quoteFinal += 25; } if (age < 18) { quoteFinal += 100; } if (age >= 100) { quoteFinal += 25; } // modify quote dependent upon car year if (carYear < 2000) { quoteFinal += 25; } if (carYear >= 2015) { quoteFinal += 25; } // modify quote dependent upon car model if (carMake.ToLower() == "porsche") { quoteFinal += 25; } if (carMake.ToLower() == "porsche" && carModel.ToLower() == "911 carrera") { quoteFinal += 25; } // modify quote dependent upon number of speeding tickets if (numberOfSpeedingTickets > 0) { quoteFinal += 10 * numberOfSpeedingTickets; } // increase price if had DUI in past if (DUI) { quoteFinal *= 1.25; } // increase again if full coverage if (coverageType == "full") { quoteFinal *= 1.5; } ViewBag.Quote = Convert.ToDecimal(quoteFinal); // add to database using (QuotesEntities db = new QuotesEntities()) { var carQuote = new CarQuote(); carQuote.Quote = Convert.ToDecimal(quoteFinal); carQuote.DateOfQuote = currentDate; carQuote.FirstName = firstName; carQuote.LastName = lastName; carQuote.EmailAddress = emailAddress; carQuote.DateOfBirth = dateOfBirth; carQuote.CarMake = carMake; carQuote.CarModel = carModel; carQuote.CarYear = carYear; carQuote.CoverageType = coverageType; carQuote.DUI = DUI.ToString(); carQuote.NumberOfSpeedingTickets = numberOfSpeedingTickets; db.CarQuotes.Add(carQuote); db.SaveChanges(); } return(View()); }
public ActionResult ProcessQuote(string firstName, string lastName, string emailAddress, DateTime dateOfBirth, int carYear, string carMake, string carModel, bool?DUI, int speedingTickets, bool?coverageType) { using (QuotesEntities db = new QuotesEntities()) { var Quotes = new Insuree(); Quotes.FirstName = firstName; Quotes.LastName = lastName; Quotes.EmailAddress = emailAddress; Quotes.DateOfBirth = dateOfBirth; Quotes.CarYear = carYear; Quotes.CarMake = carMake; Quotes.CarModel = carModel; if (Request.Form["DUI"] == "Yes") { Quotes.DUI = true; } else { Quotes.DUI = false; } Quotes.SpeedingTickets = speedingTickets; if (Request.Form["CoverageType"] == "Full Coverage") { Quotes.CoverageType = true; } else { Quotes.CoverageType = false; } db.Insurees.Add(Quotes); db.SaveChanges(); var quoteProcessed = new QuotesProcessed(); var quotesProcessed = new List <QuotesProcessed>(); int finalQuote = 50; CarQuote.CalculateQuote(Quotes, out finalQuote); quoteProcessed.FirstName = Quotes.FirstName; quoteProcessed.LastName = Quotes.LastName; quoteProcessed.EmailAddress = Quotes.EmailAddress; quoteProcessed.DateOfBirth = Quotes.DateOfBirth; quoteProcessed.CarYear = Quotes.CarYear; quoteProcessed.CarMake = Quotes.CarMake; quoteProcessed.CarModel = Quotes.CarModel; quoteProcessed.DUI = Quotes.DUI; quoteProcessed.SpeedingTickets = Quotes.SpeedingTickets; quoteProcessed.CoverageType = Quotes.CoverageType; quoteProcessed.FinalQuote = finalQuote; quotesProcessed.Add(quoteProcessed); return(View("YourQuote", quotesProcessed)); } }