Example #1
0
        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));
        }
Example #2
0
        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));
        }