private void displayCart() { divReservationsBody.Visible = false; divCartBody.Visible = true; divCart.InnerHtml = ""; double totalVacationPrice = 0; lblTotalPrice.Text = ""; if (Session["VacationPackage"] != null) { VacationPackage vacation = (VacationPackage)Session["VacationPackage"]; divCart.InnerHtml += "<div class='page-header'><h3>Cars</h3></div><div class='row' style='text-align: center;'>"; for (int i = 0; i < vacation.cars.Count; i++) { CarServiceRef.Car currCar = vacation.cars[i]; totalVacationPrice += (Convert.ToDouble(currCar.price) * vacation.carsQuantity[i]); divCart.InnerHtml += "<div class='col-md-3'><div class='panel panel-default'><div class='panel-body'><h4>"; divCart.InnerHtml += currCar.year + " "; divCart.InnerHtml += currCar.make + " "; divCart.InnerHtml += currCar.model + "</h4><p>"; divCart.InnerHtml += "Seats: " + currCar.passengers + "<br />"; divCart.InnerHtml += "GPS available: " + currCar.gps + "<br />"; divCart.InnerHtml += "Bags: " + currCar.luggage + "<br />"; divCart.InnerHtml += "Price: $" + currCar.price + "<br />"; divCart.InnerHtml += "Mileage: " + currCar.mileage + "</p>"; divCart.InnerHtml += "<br />Quantity: <input type='number' class='form-control' id='cartCar" + currCar.carID + "' name='cartCar" + currCar.carID + "' value='" + vacation.carsQuantity[i] + "'></div></div></div>"; } divCart.InnerHtml += "</div><div class='page-header'><h3>Vacations</h3></div><div class='row' style='text-align: center;'>"; for (int i = 0; i < vacation.events.Count; i++) { EventServiceRef.Event currEvent = vacation.events[i]; totalVacationPrice += (currEvent.Price * vacation.eventsQuantity[i]); divCart.InnerHtml += "<div class='col-md-3'><div class='panel panel-default'><div class='panel-body'><h4>"; divCart.InnerHtml += currEvent.Name + " <small>"; divCart.InnerHtml += currEvent.City + ", " + currEvent.State + "</small></h4><p>"; divCart.InnerHtml += currEvent.Time + ", " + currEvent.Day + "<br />"; divCart.InnerHtml += "Type: " + currEvent.Type + "<br />"; divCart.InnerHtml += "Price: $" + currEvent.Price + "</p>"; divCart.InnerHtml += "<br />Quantity: <input type='number' class='form-control' id='cartEvent" + currEvent.ID + "' name='cartEvent" + currEvent.ID + "' value='" + vacation.eventsQuantity[i] + "'></div></div></div>"; } divCart.InnerHtml += "</div><div class='page-header'><h3>Rooms</h3></div><div class='row' style='text-align: center;'>"; for (int i = 0; i < vacation.rooms.Count; i++) { HotelServiceRef.Room currRooms = vacation.rooms[i]; totalVacationPrice += (currRooms.Price * vacation.roomsQuantity[i]); divCart.InnerHtml += "<div class='col-md-3'><div class='panel panel-default'><div class='panel-body'><h4>"; divCart.InnerHtml += txtHotelCity.Text + ", " + ddlHotelState.SelectedItem.Text + "</small></h4><p>"; divCart.InnerHtml += "Price: $" + currRooms.Price + "</p>"; divCart.InnerHtml += "<br />Quantity: <input type='number' class='form-control' id='cartRooms" + currRooms.RoomID + "' name='cartRooms" + currRooms.RoomID + "' value='" + vacation.roomsQuantity[i] + "'></div></div></div>"; } divCart.InnerHtml += "</div><div class='page-header'><h3>Flights</h3></div><div class='row' style='text-align: center;'>"; for (int i = 0; i < vacation.flights.Count; i++) { Flight currFlight = vacation.flights[i]; totalVacationPrice += (currFlight.price * vacation.flightsQuantity[i]); divCart.InnerHtml += "<div class='col-md-3'><div class='panel panel-default'><div class='panel-body'><h4>"; divCart.InnerHtml += txtFlightDepCity.Text + ", " + ddlFlightDepState.SelectedItem.Text + "</small></h4><p>"; divCart.InnerHtml += "Price: $" + currFlight.price + "</p>"; divCart.InnerHtml += "<br />Quantity: <input type='number' class='form-control' id='cartFlights" + currFlight.carrierID + "' name='cartFlights" + currFlight.flightID + "' value='" + vacation.flightsQuantity[i] + "'></div></div></div>"; } divCart.InnerHtml += "</div>"; lblTotalPrice.Text += "Total Price: $" + totalVacationPrice.ToString(); } }
protected void btnCheckout_Click(object sender, EventArgs e) { if (Session["VacationPackage"] != null) { VacationPackage vacation = (VacationPackage)Session["VacationPackage"]; SqlCommand objCommand = new SqlCommand(); objCommand.CommandType = CommandType.StoredProcedure; objCommand.CommandText = "GetUser"; objCommand.Parameters.AddWithValue("@email", Session["UserName"]); DBConnect objDB = new DBConnect(); DataSet myDS = objDB.GetDataSetUsingCmdObj(objCommand); DataRow user = myDS.Tables[0].Rows[0]; CarServiceRef.Customer carCustomer = new CarServiceRef.Customer(); carCustomer.customerID = (int)user["UserID"]; carCustomer.firstName = (string)user["firstName"]; carCustomer.lastName = (string)user["lastName"]; carCustomer.email = (string)user["email"]; carCustomer.address = ""; carCustomer.age = 0; carCustomer.phoneNumber = ""; EventServiceRef.Customer eventCustomer = new EventServiceRef.Customer(); eventCustomer.ID = (int)user["UserID"]; eventCustomer.CustomerFirstName = (string)user["firstName"]; eventCustomer.CustomerLastName = (string)user["lastName"]; eventCustomer.CustomerEmail = (string)user["email"]; eventCustomer.CustomerPhone = ""; HotelServiceRef.Customer hotelCustomer = new HotelServiceRef.Customer(); hotelCustomer.CustID = (int)user["UserID"]; hotelCustomer.FirstName = (string)user["firstName"]; hotelCustomer.LastName = (string)user["lastName"]; hotelCustomer.Address = (string)user["email"]; CarServiceRef.CarService carService = new CarServiceRef.CarService(); EventServiceRef.EventService eventService = new EventServiceRef.EventService(); HotelServiceRef.HotelService hotelService = new HotelServiceRef.HotelService(); AirServiceRef.AirService airService = new AirServiceRef.AirService(); string emailBody = "<h1>You have reserved</h1>"; emailBody += "<h2>Cars</h2>"; bool reservedCars = true; for (int i = 0; i < vacation.cars.Count; i++) { CarServiceRef.Car currCar = vacation.cars[i]; if (!carService.Reserve(carCustomer, currCar)) { reservedCars = false; } else { emailBody += "<p>" + currCar.year + " " + currCar.make + " " + currCar.model + " ($" + currCar.price + ")</p>"; } } emailBody += "<h2>Events</h2>"; bool reservedEvents = true; for (int i = 0; i < vacation.events.Count; i++) { EventServiceRef.Event currEvent = vacation.events[i]; if (!eventService.Reserve(currEvent, eventCustomer)) { reservedEvents = false; } else { emailBody += "<p>" + currEvent.Name + " ($" + currEvent.Price + ")</p>"; } } emailBody += "<h2>Hotels</h2>"; bool reservedHotels = true; for (int i = 0; i < vacation.rooms.Count; i++) { HotelServiceRef.Room currRoom = vacation.rooms[i]; if (!hotelService.Reserve(currRoom, hotelCustomer)) { reservedHotels = false; } else { emailBody += "<p>" + currRoom.RoomNumber + " ($" + currRoom.Price + ")</p>"; } } emailBody += "<h2>Flights</h2>"; bool reservedFlights = true; for (int i = 0; i < vacation.flights.Count; i++) { Flight currFlight = vacation.flights[i]; emailBody += "<p>" + currFlight.carrierName + " ($" + currFlight.price + ") could not be reserved because the AirService does not accept reservations</p>"; } emailBody += "<br><br><p>Thank you,<br>Vacation-O-City Team</p>"; if (reservedCars) { vacation.cars.Clear(); vacation.carsQuantity.Clear(); } if (reservedEvents) { vacation.events.Clear(); vacation.eventsQuantity.Clear(); } if (reservedHotels) { vacation.events.Clear(); vacation.roomsQuantity.Clear(); } if (reservedFlights) { vacation.flights.Clear(); vacation.flightsQuantity.Clear(); } Email emailSender = new Email(); emailSender.SendMail((string)Session["UserName"], "*****@*****.**", "Reservation Confirmation", emailBody, "*****@*****.**"); clearCartCount(); Session["VacationPackage"] = vacation; vacation = (VacationPackage)Session["VacationPackage"]; Serialize objSerialize = new Serialize(); objSerialize.WriteCartToDB(vacation, Session["UserName"]); } displayCart(); }