public ActionResult SaveClientData(string firstName, string lastName, string emailAddress, string dateOfBirth, string carYear, string carModel, string carMake, bool DUI, int tickets, bool coverage) { if (tickets < 0) { ViewBag.Quote = "Error: The number of speeding tickets cannot be below 0."; return(View()); } else { CalculatedQuote quote = new CalculatedQuote(); CarInsuranceRepositoryEntities2 db = new CarInsuranceRepositoryEntities2(); quote.FirstName = firstName; quote.LastName = lastName; quote.EmailAddress = emailAddress; quote.DateOfBirth = dateOfBirth; quote.CarYear = carYear; quote.CarModel = carModel; quote.CarMake = carMake; quote.DUI = DUI; quote.SpeedingTickets = tickets; quote.FullCoverage = coverage; try { var quotes = db.CalculatedQuotes; quote.Quote = Convert.ToDecimal(CalculateCost(quote)); quotes.Add(quote); db.SaveChanges(); ViewBag.Quote = String.Format("Your calculated monthly fee for car insurance is {0:C}", quote.Quote); } catch (DbEntityValidationException e) { foreach (var validationErrors in e.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); } } ViewBag.Quote = "There was an error processing your request, please review your data and try again."; } return(View()); } }
private int carYearModifier(CalculatedQuote quote) { if (Convert.ToInt32(DateTime.Parse(quote.CarYear).Year) < 2000) { return(25); } else if (Convert.ToInt32(DateTime.Parse(quote.CarYear).Year) > 2015) { return(25); } else { return(0); } }
private int carMakeAndModelModifier(CalculatedQuote quote) { if (quote.CarMake == "Porsche" && quote.CarModel == "911 Carrera") { return(50); } else if (quote.CarMake == "Porsche") { return(25); } else { return(0); } }
private double CalculateCost(CalculatedQuote quote) { double Cost = 50 + ageModifier(quote) + carYearModifier(quote) + carMakeAndModelModifier(quote) + Convert.ToInt32(quote.SpeedingTickets) * 10; if (quote.DUI == true) { Cost *= 1.25; } if (quote.FullCoverage == true) { Cost *= 1.5; } return(Cost); }
private int ageModifier(CalculatedQuote quote) { if ((DateTime.Today.Date.Subtract(DateTime.Parse(quote.DateOfBirth)).TotalDays < 18 * 365)) { return(100); } else if (DateTime.Today.Date.Subtract(DateTime.Parse(quote.DateOfBirth)).TotalDays < 25 * 365) { return(25); } else if ((DateTime.Today.Date.Subtract(DateTime.Parse(quote.DateOfBirth)).TotalDays > 100 * 365)) { return(25); } else { return(0); } }