public ActionResult Create() { ViewBag.CoverageID = new SelectList(db.CoverageLevels, "Id", "Name"); var userId = User.Identity.GetUserId(); int customerID = CustID(); bool isVisitor = Visitor.IsVisitor(customerID); Customer cust = db.Customers.Find(customerID); //get driving history CustomerDrivingHistory driveHist = null; if (!isVisitor) { var list = db.CustomerDrivingHistories.Where(x => x.CustomerID == customerID).OrderBy(x => x.DateRecorded).ToList(); if (list.Count > 0) { driveHist = list.Last(); } } var model = new QuoteVM { CustomerID = customerID, AutoModelID = -1, AutoOptionID = -1, CoverageID = -1, CustomerName = cust.FirstName + " " + cust.LastName, DateOfBirth = cust.DateOfBirth, HasDrivingHistory = driveHist is null ? false : true, IsVisitor = isVisitor, NumDUIs = driveHist is null ? null : driveHist.NumDUIs, NumSpeedingTickets = driveHist is null ? null : driveHist.NumSpeedingTickets }; return(View(model)); }
public ActionResult Create(QuoteVM quote) //[Bind(Include = "Id,CustomerID,AutoModelID,DrivingHistoryID,CoverageID,AutoOptionID,PriceQuote")] { CustomerDrivingHistory cdhDB = null; if (Visitor.IsVisitor(quote.CustomerID)) //Save Visitor driving history { var list = db.CustomerDrivingHistories.Where(x => x.CustomerID == quote.CustomerID).OrderBy(x => x.DateRecorded).ToList(); if (list.Count > 0) { cdhDB = list.Last(); if (quote.NumDUIs != cdhDB.NumDUIs || quote.NumSpeedingTickets != cdhDB.NumSpeedingTickets) //the history changed { cdhDB = null; //set to null so that we record the new history } } } if (cdhDB is null) { cdhDB = new CustomerDrivingHistory { CustomerID = quote.CustomerID, DateRecorded = DateTime.Now, NumDUIs = quote.NumDUIs, NumSpeedingTickets = quote.NumSpeedingTickets }; db.CustomerDrivingHistories.Add(cdhDB); _ = db.SaveChanges(); } if (Visitor.IsVisitor(quote.CustomerID)) { //save Visitor's birthday and driving history ID in a separate table for reference var vs = new VisitorSession { DateOfBirth = quote.DateOfBirth, DrivingHistoryId = cdhDB.Id }; db.VisitorSessions.Add(vs); _ = db.SaveChanges(); } Quote quoteDB = new Quote(); quoteDB.CustomerID = quote.CustomerID; quoteDB.AutoModelID = quote.AutoModelID; quoteDB.AutoOptionID = quote.AutoOptionID; quoteDB.CoverageID = quote.CoverageID; quoteDB.DrivingHistoryID = cdhDB.Id; quoteDB.DateIssued = DateTime.Now; quoteDB.PriceQuote = BusinessLogic.QuoteLogic.GetPriceQuote(quoteDB); db.Quotes.Add(quoteDB); _ = db.SaveChanges(); return(RedirectToAction("Details", quoteDB)); }