public ActionResult GenerateQuote(string firstName, string lastName, string emailAddress,
                                          DateTime dateOfBirth, int carYear, string carMake, string carModel,
                                          bool?dUI, int tickets, bool?cover)
        {
            // Checkbox inputs are not submitted when unchecked
            // If checkbox is unchecked no value will be sent and thus DUI and Cover will be null.
            if (dUI == null)
            {
                dUI = false;
            }
            if (cover == null)
            {
                cover = false;
            }

            // Create quote instance,  calculate price and return details to view
            var quote = new Quote(firstName, lastName, emailAddress,
                                  dateOfBirth, carYear, carMake, carModel,
                                  dUI, tickets, cover);

            Quote.CalculateQuotePrice(quote);
            int price = quote.Price;

            if (string.IsNullOrEmpty(firstName) || string.IsNullOrEmpty(lastName) || string.IsNullOrEmpty(emailAddress))
            {
                return(View("~/Views/Shared/Error.cshtml"));
            }
            else
            {
                string queryString = @"INSERT INTO Quotes (FirstName, LastName, EmailAddress, DateOfBirth, CarYear, CarMake, CarModel, DUI, Tickets, Cover, Price)
                                        VALUES (@FirstName, @LastName, @EmailAddress, @DateOfBirth, @CarYear, @CarMake, @CarModel, @DUI, @Tickets, @Cover, @price)";

                using (SqlConnection connection = new SqlConnection(_connectionString))
                {
                    var command = new SqlCommand(queryString, connection);
                    command.Parameters.Add("@FirstName", SqlDbType.VarChar);
                    command.Parameters.Add("@LastName", SqlDbType.VarChar);
                    command.Parameters.Add("@EmailAddress", SqlDbType.VarChar);
                    command.Parameters.Add("@DateOfBirth", SqlDbType.DateTime);
                    command.Parameters.Add("@CarYear", SqlDbType.Int);
                    command.Parameters.Add("@CarMake", SqlDbType.VarChar);
                    command.Parameters.Add("@CarModel", SqlDbType.VarChar);
                    command.Parameters.Add("@DUI", SqlDbType.Bit);
                    command.Parameters.Add("@Tickets", SqlDbType.Int);
                    command.Parameters.Add("@Cover", SqlDbType.Bit);
                    command.Parameters.Add("@Price", SqlDbType.Int);

                    command.Parameters["@FirstName"].Value    = firstName;
                    command.Parameters["@LastName"].Value     = lastName;
                    command.Parameters["@EmailAddress"].Value = emailAddress;
                    command.Parameters["@DateOfBirth"].Value  = dateOfBirth;
                    command.Parameters["@CarYear"].Value      = carYear;
                    command.Parameters["@CarMake"].Value      = carMake;
                    command.Parameters["@CarModel"].Value     = carModel;
                    command.Parameters["@DUI"].Value          = dUI;
                    command.Parameters["@Tickets"].Value      = tickets;
                    command.Parameters["@Cover"].Value        = cover;
                    command.Parameters["@Price"].Value        = price;

                    connection.Open();
                    command.ExecuteNonQuery();
                    connection.Close();
                }
            }
            return(View("Success", quote));
        }