// GET: Admin
        public ActionResult Index()
        {
            using (QuoteDBEntities db = new QuoteDBEntities())
            {
                var quotes = db.Quotes.ToList();

                var quoteVms = new List <QuoteVm>();
                foreach (var quote in quotes)
                {
                    var quoteVm = new QuoteVm();
                    quoteVm.Id           = quote.Id;
                    quoteVm.firstName    = quote.FirstName;
                    quoteVm.lastName     = quote.LastName;
                    quoteVm.emailAddress = quote.EmailAddress;
                    quoteVm.quotedCost   = Convert.ToDouble(quote.QuotedCost);

                    quoteVms.Add(quoteVm);
                }


                //
                return(View(quoteVms));
            }
        }
        public ActionResult Quote(int QueryTypeID, string firstName, string lastName, string emailAddress,
                                  DateTime dateOfBirth, string DUI, string fullCoverage,
                                  int carYear, string carMake, string carModel,
                                  int speedingTickets)
        {
            using (QuoteDBEntities db = new QuoteDBEntities())
            {
                TextInfo ti = CultureInfo.CurrentCulture.TextInfo;

                var quote = new Quote();
                quote.FirstName       = firstName;
                quote.LastName        = lastName;
                quote.EmailAddress    = emailAddress;
                quote.DateOfBirth     = dateOfBirth;
                quote.DUI             = Convert.ToBoolean(DUI);
                quote.FullCoverage    = Convert.ToBoolean(fullCoverage);
                quote.CarYear         = carYear;
                quote.CarMake         = ti.ToTitleCase(carMake);
                quote.CarModel        = ti.ToTitleCase(carModel);
                quote.SpeedingTickets = speedingTickets;


                double quoteValue = Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().BaseCost);   // start with the base cost
                if (quote.DateOfBirth > DateTime.Now.AddYears(-18))
                {
                    quoteValue += Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().Under18YO); // add extra if younger than 18 y.o.
                }
                if (quote.DateOfBirth > DateTime.Now.AddYears(-25))
                {
                    quoteValue += Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().Under25YO); // add extra if younger than 25 y.o.
                }
                if (quote.DateOfBirth < DateTime.Now.AddYears(-100))
                {
                    quoteValue += Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().Over100YO);
                }
                if (quote.CarYear < db.Costs.Where(x => x.Id == QueryTypeID).First().OldCarYear)
                {
                    quoteValue += Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().OldCarCost);
                }
                if (quote.CarYear > db.Costs.Where(x => x.Id == QueryTypeID).First().NewCarYear)
                {
                    quoteValue += Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().NewCarCost);
                }

                var makeExtraCost = (from b in db.MakeCosts
                                     where b.Make == quote.CarMake
                                     select b.MakeCost1).ToList().Max();

                if (makeExtraCost != null)
                {
                    quoteValue += Convert.ToDouble(makeExtraCost);
                }

                var modelExtraCost = (from b in db.ModelCosts
                                      where b.Model == quote.CarModel
                                      select b.ModelCost1).ToList().Max();

                if (modelExtraCost != null)
                {
                    quoteValue += Convert.ToDouble(modelExtraCost);
                }

                quoteValue += (Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().PerSpeedingTicketCost) * Convert.ToDouble(quote.SpeedingTickets));

                if (quote.DUI == true)
                {
                    quoteValue += quoteValue * Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().DUIPercent / 100);
                }

                if (quote.FullCoverage == true)
                {
                    quoteValue += quoteValue * Convert.ToDouble(db.Costs.Where(x => x.Id == QueryTypeID).First().FullCoveragePercent) / 100;
                }

                quote.QuotedCost = Math.Round(Convert.ToDecimal(quoteValue), 2);

                db.Quotes.Add(quote);
                db.SaveChanges();

                ViewBag.QuotedCost = quote.QuotedCost;
            }



            return(View());
        }