protected void btnBook_Click(object sender, EventArgs e) { if (Session["travelbooking"] != null) { TravelBooking travelbooking = (TravelBooking)Session["travelbooking"]; FlightBooking travelbookingoneway = (FlightBooking)travelbooking.GetBookingForTravel(TravelDirection.OneWay); foreach (RepeaterItem item in rptrPassengerInfo.Items) { TextBox Name = (TextBox)item.FindControl("AdultFname"); DropDownList Gender = (DropDownList)item.FindControl("ddlGender"); TextBox DOB = (TextBox)item.FindControl("txtDOB"); //Calling the Parameterized Constructor //This is done once the class variables are set to private set //and a paramterized constructor is introduced //Using VS - Effectively - CR - STYCBG09.02 Passenger passenger = new Passenger(Name.Text, Gender.SelectedItem.Value.ToCharArray()[0], Convert.ToDateTime(DOB.Text)); travelbookingoneway.AddPassenger(passenger); } BookingContact bookingcontact = new BookingContact(); bookingcontact.Address = txtAddress.Text; bookingcontact.City = txtCity.Text; bookingcontact.ContactName = txtName.Text; bookingcontact.Email = txtEmailId.Text; bookingcontact.MobileNo = txtMobile.Text; bookingcontact.PhoneNo = txtPhoneNumber.Text; bookingcontact.State = txtState.Text; travelbookingoneway.Contact = bookingcontact; travelbooking.AddBookingForTravel(TravelDirection.OneWay, travelbookingoneway); if (travelbooking.IsReturnAvailable()) { FlightBooking TravelBookingReturn = (FlightBooking)travelbooking.GetBookingForTravel(TravelDirection.Return); foreach (var passenger in travelbookingoneway.GetPassengers()) { TravelBookingReturn.AddPassenger(passenger); } TravelBookingReturn.Contact = bookingcontact; travelbooking.AddBookingForTravel(TravelDirection.Return, TravelBookingReturn); } Session["travelbooking"] = travelbooking; } Response.Redirect("~/booking/confirmation.aspx"); }
protected void btnBook_Click(object sender, EventArgs e) { if (Session["travelbooking"] != null) { TravelBooking travelbooking = (TravelBooking)Session["travelbooking"]; FlightBooking travelbookingoneway = (FlightBooking)travelbooking.GetBookingForTravel(TravelDirection.OneWay); foreach (RepeaterItem item in rptrPassengerInfo.Items) { TextBox Name = (TextBox)item.FindControl("AdultFname"); DropDownList Gender = (DropDownList)item.FindControl("ddlGender"); TextBox DOB = (TextBox)item.FindControl("txtDOB"); Passenger passenger = new Passenger { Name = Name.Text, DateOfBirth = Convert.ToDateTime(DOB.Text), Gender = Gender.SelectedItem.Value.ToCharArray()[0] }; travelbookingoneway.AddPassenger(passenger); } BookingContact bookingcontact = new BookingContact(); bookingcontact.Address = txtAddress.Text; bookingcontact.City = txtCity.Text; bookingcontact.ContactName = txtName.Text; bookingcontact.Email = txtEmailId.Text; bookingcontact.MobileNo = txtMobile.Text; bookingcontact.PhoneNo = txtPhoneNumber.Text; bookingcontact.State = txtState.Text; travelbookingoneway.Contact = bookingcontact; travelbooking.AddBookingForTravel(TravelDirection.OneWay, travelbookingoneway); if (travelbooking.IsReturnAvailable()) { FlightBooking TravelBookingReturn = (FlightBooking)travelbooking.GetBookingForTravel(TravelDirection.Return); foreach (var passenger in travelbookingoneway.GetPassengers()) { TravelBookingReturn.AddPassenger(passenger); } TravelBookingReturn.Contact = bookingcontact; travelbooking.AddBookingForTravel(TravelDirection.Return, TravelBookingReturn); } Session["travelbooking"] = travelbooking; } Response.Redirect("~/booking/confirmation.aspx"); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { #region Obtain the bookingObjects From Session if (!IsPostBack) { decimal TotalCost = 0; TravelBooking _travelBooking = null; FlightBooking flightbookingonward = null; FlightBooking flightbookingreturn = null; if (Session["travelbooking"] != null) { _travelBooking = (TravelBooking)Session["travelbooking"]; flightbookingonward = (FlightBooking)_travelBooking.GetBookingForTravel(TravelDirection.OneWay); flightbookingreturn = (FlightBooking)_travelBooking.GetBookingForTravel(TravelDirection.Return); } if (flightbookingonward != null) { FlightBooking flightbooking = flightbookingonward; int NoOfSeats = flightbooking.NoOfSeats; List <Passenger> lstPassenger = flightbooking.GetPassengers();; rptrPassengerInfo.DataSource = lstPassenger; rptrPassengerInfo.DataBind(); rptrOnwardFlightInfo.DataSource = flightbooking.TravelScheduleInfo.GetSchedules(); rptrOnwardFlightInfo.DataBind(); TotalCost = flightbooking.TotalCost; lblHeaderFromCity.Text = flightbookingonward.TravelScheduleInfo.GetSchedules()[0].RouteInfo.FromCity.Name; lblHeaderToCity.Text = flightbookingonward.TravelScheduleInfo.GetSchedules()[0].RouteInfo.ToCity.Name; lblAdults.Text = flightbookingonward.NoOfSeats.ToString(); lblHeaderDepart.Text = flightbookingonward.DateOfJourney.ToString("ddd, dd MMM, yyyy"); lblHeaderDateSeparator.Visible = false; if (_travelBooking.IsReturnAvailable()) { lblHeaderDateSeparator.Visible = true; } //Fill Contacts details lblName.Text = flightbooking.Contact.ContactName; lblAddressline1.Text = flightbooking.Contact.MobileNo; lblState.Text = flightbooking.Contact.State; lblCity.Text = flightbooking.Contact.City; lblEmail.Text = flightbooking.Contact.Email; lblMobno.Text = flightbooking.Contact.MobileNo; lblPhno.Text = flightbooking.Contact.PhoneNo; } if (flightbookingreturn != null) { FlightBooking flightbooking = flightbookingreturn; int NoOfSeats = flightbooking.NoOfSeats; rptrReturnFlightInfo.DataSource = flightbooking.TravelScheduleInfo.GetSchedules(); rptrReturnFlightInfo.DataBind(); divReturn.Visible = true; TotalCost = TotalCost + flightbooking.TotalCost; lblHeaderReturn.Text = flightbookingreturn.DateOfJourney.ToString("ddd, dd MMM, yyyy"); } lblTotalPrice.Text = TotalCost.ToString(); } #endregion } }
/// <summary> /// Inserts into database the booking for air travel /// </summary> /// <param name="newBooking"></param> /// <param name="dbConnection"></param> /// <exception cref="AirTravelBookingException">Throws the AirTravelBookingException, if unable to store a booking</exception> /// <returns>Returns the booking reference number</returns> public string MakeBooking(Booking newBooking, Database dbConnection) { string bookingReferenceNo = string.Empty; //Downcast to flight booking FlightBooking airBooking = (FlightBooking)newBooking; try { //Write code to store data into database DbCommand command = dbConnection.GetStoredProcCommand("BookFlightTicket"); dbConnection.AddInParameter(command, "@TypeID", DbType.Int32, (int)airBooking.BookingType); dbConnection.AddInParameter(command, "@DateOfJourney", DbType.DateTime, airBooking.DateOfJourney); dbConnection.AddInParameter(command, "@NoOfSeats", DbType.Int32, airBooking.NoOfSeats); dbConnection.AddInParameter(command, "@ClassID", DbType.Int32, (int)airBooking.Class.ClassInfo); dbConnection.AddInParameter(command, "@ContactName", DbType.String, airBooking.Contact.ContactName); dbConnection.AddInParameter(command, "@Address", DbType.String, airBooking.Contact.Address); dbConnection.AddInParameter(command, "@City", DbType.String, airBooking.Contact.City); dbConnection.AddInParameter(command, "@State", DbType.String, airBooking.Contact.State); dbConnection.AddInParameter(command, "@PinCode", DbType.String, airBooking.Contact.PinCode); dbConnection.AddInParameter(command, "@Email", DbType.String, airBooking.Contact.Email); dbConnection.AddInParameter(command, "@PhoneNo", DbType.String, airBooking.Contact.PhoneNo); dbConnection.AddInParameter(command, "@MobileNo", DbType.String, airBooking.Contact.MobileNo); dbConnection.AddInParameter(command, "@PaymentRefernceNo", DbType.String, airBooking.PaymentInfo.ReferenceNo); dbConnection.AddInParameter(command, "@TotalCost", DbType.Decimal, airBooking.TotalCost); //Concatenate to send to database as a single string string passengerDetails = String.Empty; string name = String.Empty; string gender = String.Empty; string dob = String.Empty; foreach (Passenger p in airBooking.GetPassengers()) { name = p.Name; gender = p.Gender.ToString(); dob = p.DateOfBirth.ToShortDateString(); passengerDetails += name + "|" + gender + "|" + dob + ";"; } dbConnection.AddInParameter(command, "@PassengerDetails", DbType.String, passengerDetails); dbConnection.AddOutParameter(command, "@BookingReferenceNumber", DbType.String, 100); dbConnection.AddOutParameter(command, "@LastBookingID", DbType.Int64, 0); //Execute the command dbConnection.ExecuteNonQuery(command); //Get the values from the database bookingReferenceNo = dbConnection.GetParameterValue(command, "@BookingReferenceNumber").ToString(); long bookingId = Convert.ToInt64(dbConnection.GetParameterValue(command, "@LastBookingID")); //Insert the schedules for a booking foreach (Schedule s in airBooking.TravelScheduleInfo.GetSchedules()) { try { InsertBookingSchedule(bookingId, s.ID, s.GetFlightCosts().FirstOrDefault().CostPerTicket, dbConnection); } catch (AirTravelBookingException) { throw; } } } catch (AirTravelBookingException) { throw; } catch (DbException ex) { throw new AirTravelBookingException("Unable to insert air travel booking", ex); } catch (Exception ex) { throw new AirTravelBookingException("Unable to insert air travel booking", ex); } return(bookingReferenceNo); }
protected void btnBook_Click(object sender, EventArgs e) { try { if (Session["travelbooking"] != null) { TravelBooking travelbooking = (TravelBooking)Session["travelbooking"]; FlightBooking travelbookingoneway = (FlightBooking)travelbooking.GetBookingForTravel(TravelDirection.OneWay); travelbookingoneway.GetPassengers().Clear(); FlightBooking travelbookingReturn = null; bool isReturnAvailable = false; if (travelbooking.IsReturnAvailable()) { isReturnAvailable = true; travelbookingReturn = (FlightBooking)travelbooking.GetBookingForTravel(TravelDirection.Return); travelbookingReturn.GetPassengers().Clear(); } foreach (RepeaterItem item in rptrPassengerInfo.Items) { TextBox Name = (TextBox)item.FindControl("AdultFname"); DropDownList Gender = (DropDownList)item.FindControl("ddlGender"); TextBox DOB = (TextBox)item.FindControl("txtDOB"); DateTime dtDOB; if (DateTime.TryParse(DOB.Text, out dtDOB) == false) { lblError.Text = "Invalid Date of Birth"; return; } else { if (dtDOB > DateTime.Now) { lblError.Text = "Birthday is in the future."; return; } lblError.Text = ""; } travelbookingoneway.AddPassenger(new Passenger { Name = Name.Text, DateOfBirth = dtDOB, Gender = Gender.SelectedItem.Value.ToCharArray()[0] }); if (isReturnAvailable) { travelbookingReturn.AddPassenger(new Passenger { Name = Name.Text, DateOfBirth = dtDOB, Gender = Gender.SelectedItem.Value.ToCharArray()[0] }); } } //Insurance captured if user has selected insurance if (InsuranceOption.Checked) { FlightBooking bookingoneway = (FlightBooking)travelbooking.GetBookingForTravel(TravelDirection.OneWay); TravelInsurance insurance = new TravelInsurance(); insurance.Amount = Convert.ToDecimal(lblOnwardInsuranceValue.Text) * bookingoneway.NoOfSeats; travelbookingoneway.Insurance = insurance; if (isReturnAvailable) { FlightBooking bookingReturh = (FlightBooking)travelbooking.GetBookingForTravel(TravelDirection.Return); TravelInsurance insuranceReturn = new TravelInsurance(); insuranceReturn.Amount = Convert.ToDecimal(lblReturnInsuranceValue.Text) * bookingReturh.NoOfSeats; travelbookingReturn.Insurance = insuranceReturn; } } //------------------------------------------------- BookingContact bookingcontact = new BookingContact(); bookingcontact.Address = txtAddress.Text; bookingcontact.City = txtCity.Text; bookingcontact.ContactName = txtName.Text; bookingcontact.Email = txtEmailId.Text; bookingcontact.MobileNo = txtMobile.Text; bookingcontact.PhoneNo = txtPhoneNumber.Text; bookingcontact.State = txtState.Text; travelbookingoneway.Contact = bookingcontact; travelbooking.AddBookingForTravel(TravelDirection.OneWay, travelbookingoneway); if (isReturnAvailable) { travelbookingReturn.Contact = bookingcontact; travelbooking.AddBookingForTravel(TravelDirection.Return, travelbookingReturn); } Session["travelbooking"] = travelbooking; } Response.Redirect("~/booking/confirmation.aspx"); } catch (Exception) { lblError.Text = "Please check the information entered"; } }
protected void Page_Load(object sender, EventArgs e) { #region Obtain the bookingObjects From Session if (!IsPostBack) { decimal TotalCost = 0; TravelBooking _travelBooking = null; FlightBooking flightbookingonward = null; FlightBooking flightbookingreturn = null; if (Session["travelBooking"] != null) { _travelBooking = (TravelBooking)Session["travelbooking"]; flightbookingonward = (FlightBooking)_travelBooking.GetBookingForTravel(TravelDirection.OneWay); flightbookingreturn = (FlightBooking)_travelBooking.GetBookingForTravel(TravelDirection.Return); } else { Response.Redirect("~/Index.aspx"); } if (flightbookingonward != null) { FlightBooking flightbooking = flightbookingonward; int NoOfSeats = flightbooking.NoOfSeats; lblHeaderDepart.Text = flightbooking.DateOfJourney.ToString("ddd, dd MMM, yyyy"); lblAdults.Text = NoOfSeats.ToString(); List <Passenger> lstPassenger = flightbooking.GetPassengers();; rptrPassengerInfo.DataSource = lstPassenger; rptrPassengerInfo.DataBind(); rptrOnwardFlightInfo.DataSource = flightbooking.TravelScheduleInfo.GetSchedules(); rptrOnwardFlightInfo.DataBind(); TotalCost = flightbooking.TotalCost; lblHeaderDateSeparator.Visible = false; //Fill Contacts details lblName.Text = flightbooking.Contact.ContactName; lblAddressline1.Text = flightbooking.Contact.MobileNo; lblState.Text = flightbooking.Contact.State; lblCity.Text = flightbooking.Contact.City; lblEmail.Text = flightbooking.Contact.Email; lblMobno.Text = flightbooking.Contact.MobileNo; lblPhno.Text = flightbooking.Contact.PhoneNo; lblHeaderFromCity.Text = flightbooking.TravelScheduleInfo.GetSchedules()[0].RouteInfo.FromCity.Name; lblHeaderToCity.Text = flightbooking.TravelScheduleInfo.GetSchedules()[0].RouteInfo.ToCity.Name; lblOnwardTicketNo.Text = flightbooking.ReferenceNo; } if (flightbookingreturn != null) { FlightBooking flightbooking = flightbookingreturn; int NoOfSeats = flightbooking.NoOfSeats; lblHeaderReturn.Text = flightbooking.DateOfJourney.ToString("ddd, dd MMM, yyyy"); rptrReturnFlightInfo.DataSource = flightbooking.TravelScheduleInfo.GetSchedules(); rptrReturnFlightInfo.DataBind(); divReturn.Visible = true; TotalCost = TotalCost + flightbooking.TotalCost; lblHeaderDateSeparator.Visible = true; pnlReturnTicketNo.Visible = true; lblReturnTicketNo.Text = flightbooking.ReferenceNo; } //Insurance Display decimal insuranceOnwardAmount = 0; decimal insuranceReturnAmount = 0; if (flightbookingonward.Insurance != null) { insuranceOnwardAmount = flightbookingonward.Insurance.Amount; if (flightbookingreturn != null && flightbookingreturn.Insurance != null) { insuranceReturnAmount = flightbookingreturn.Insurance.Amount; } lblInsuranceText.Text = "You have opted to go for travel insurance for the amount : "; lblInsuranceValue.Text = "Onward Journey : INR " + (insuranceOnwardAmount / flightbookingonward.NoOfSeats) + " /- Per Passenger "; if (insuranceReturnAmount > 0) { lblInsuranceValue.Text += "-- Return Journey : INR " + (insuranceReturnAmount / flightbookingreturn.NoOfSeats) + " /- Per Passenger "; } lblInsuranceText.Visible = true; lblInsuranceValue.Visible = true; } else { lblInsuranceValue.Text = "INR 0.0"; lblInsuranceValue.Visible = true; } lblTotalPrice.Text = "INR " + (TotalCost - (insuranceOnwardAmount + insuranceReturnAmount)).ToString(); lblGrandTotal.Text = "INR " + TotalCost.ToString(); if (Session["happymiles"] != null) { int happyMiles = (int)Session["happymiles"]; lblHappyMiles.Text = "Happy miles earned in this transaction is " + happyMiles.ToString(); } } //Clean up the session Session.Clear(); #endregion }
///// <summary> ///// Inserts into database the booking for air travel ///// </summary> ///// <param name="newBooking"></param> ///// <param name="dbConnection"></param> ///// <exception cref="AirTravelBookingException">Throws the AirTravelBookingException, if unable to store a booking</exception> ///// <returns>Returns the booking reference number</returns> //public string MakeBooking(Booking newBooking, Database dbConnection) //{ // string bookingReferenceNo = string.Empty; // //Downcast to flight booking // FlightBooking airBooking = (FlightBooking)newBooking; // try // { // //Write code to store data into database // DbCommand command = dbConnection.GetStoredProcCommand("BookFlightTicket"); // dbConnection.AddInParameter(command, "@TypeID", DbType.Int32, (int)airBooking.BookingType); // dbConnection.AddInParameter(command, "@DateOfJourney", DbType.DateTime, airBooking.DateOfJourney); // dbConnection.AddInParameter(command, "@NoOfSeats", DbType.Int32, airBooking.NoOfSeats); // dbConnection.AddInParameter(command, "@ClassID", DbType.Int32, (int)airBooking.Class.ClassInfo); // dbConnection.AddInParameter(command, "@ContactName", DbType.String, airBooking.Contact.ContactName); // dbConnection.AddInParameter(command, "@Address", DbType.String, airBooking.Contact.Address); // dbConnection.AddInParameter(command, "@City", DbType.String, airBooking.Contact.City); // dbConnection.AddInParameter(command, "@State", DbType.String, airBooking.Contact.State); // dbConnection.AddInParameter(command, "@PinCode", DbType.String, airBooking.Contact.PinCode); // dbConnection.AddInParameter(command, "@Email", DbType.String, airBooking.Contact.Email); // dbConnection.AddInParameter(command, "@PhoneNo", DbType.String, airBooking.Contact.PhoneNo); // dbConnection.AddInParameter(command, "@MobileNo", DbType.String, airBooking.Contact.MobileNo); // dbConnection.AddInParameter(command, "@PaymentRefernceNo", DbType.String, airBooking.PaymentInfo.ReferenceNo); // dbConnection.AddInParameter(command, "@TotalCost", DbType.Decimal, airBooking.TotalCost); // //Concatenate to send to database as a single string // string passengerDetails = String.Empty; // string name = String.Empty; // string gender = String.Empty; // string dob = String.Empty; // foreach (Passenger p in airBooking.GetPassengers()) // { // name = p.Name; // gender = p.Gender.ToString(); // dob = p.DateOfBirth.ToShortDateString(); // passengerDetails = name + "|" + gender + "|" + dob + ";"; // } // dbConnection.AddInParameter(command, "@PassengerDetails", DbType.String, passengerDetails); // dbConnection.AddOutParameter(command, "@BookingReferenceNumber", DbType.String, 100); // dbConnection.AddOutParameter(command, "@LastBookingID", DbType.Int64, 0); // //Execute the command // dbConnection.ExecuteNonQuery(command); // //Get the values from the database // bookingReferenceNo = dbConnection.GetParameterValue(command, "@BookingReferenceNumber").ToString(); // long bookingId = Convert.ToInt64(dbConnection.GetParameterValue(command, "@LastBookingID")); // //Insert the schedules for a booking // foreach (Schedule s in airBooking.TravelScheduleInfo.GetSchedules()) // { // try // { // InsertBookingSchedule(bookingId, s.ID, s.GetFlightCosts().FirstOrDefault().CostPerTicket, dbConnection); // } // catch (AirTravelBookingException) // { // throw; // } // } // } // catch(AirTravelBookingException) // { // throw; // } // catch (DbException ex) // { // throw new AirTravelBookingException("Unable to insert air travel booking", ex); // } // catch (Exception ex) // { // throw new AirTravelBookingException("Unable to insert air travel booking", ex); // } // return bookingReferenceNo; //} ///// <summary> ///// Inserts the schedule for a booking ///// </summary> ///// <param name="bookingId"></param> ///// <param name="scheduleId"></param> ///// <param name="costPerTicket"></param> ///// <param name="dbConnection"></param> ///// <returns></returns> //private bool InsertBookingSchedule(long bookingId, long scheduleId, decimal costPerTicket, Database dbConnection) //{ // bool isStored = false; // try // { // //Write code to store data into database // DbCommand command = dbConnection.GetStoredProcCommand("InsertFlightTicketSchedule"); // dbConnection.AddInParameter(command, "@BookingId", DbType.Int64, bookingId); // dbConnection.AddInParameter(command, "@ScheduleId", DbType.Int64, scheduleId); // dbConnection.AddInParameter(command, "@CostPerTicket", DbType.Decimal, costPerTicket); // //Execute the command // dbConnection.ExecuteNonQuery(command); // isStored = true; // } // catch (DbException ex) // { // throw new AirTravelBookingException("Unable to insert air travel schedule", ex); // } // catch (Exception ex) // { // throw new AirTravelBookingException("Unable to insert air travel schedule", ex); // } // return isStored; //} #endregion #region Method to store booking details for an air travel /// <summary> /// Inserts into database the booking for air travel /// </summary> /// <param name="newBooking"></param> /// <param name="dbConnection"></param> /// <exception cref="AirTravelBookingException">Throws the AirTravelBookingException, if unable to store a booking</exception> /// <returns>Returns the booking reference number</returns> public string MakeBooking(Booking newBooking, IDbConnection dbConnection) { string bookingReferenceNo = string.Empty; //Downcast to flight booking FlightBooking airBooking = (FlightBooking)newBooking; try { dbConnection.Open(); IDbCommand cmd = dbConnection.CreateCommand(); cmd.CommandText = "BookFlightTicket"; cmd.CommandType = CommandType.StoredProcedure; IDbDataParameter p1 = cmd.CreateParameter(); p1.ParameterName = "@TypeID"; p1.Value = (int)airBooking.BookingType; cmd.Parameters.Add(p1); IDbDataParameter p2 = cmd.CreateParameter(); p2.ParameterName = "@DateOfJourney"; p2.Value = airBooking.DateOfJourney; cmd.Parameters.Add(p2); IDbDataParameter p3 = cmd.CreateParameter(); p3.ParameterName = "@NoOfSeats"; p3.Value = airBooking.NoOfSeats; cmd.Parameters.Add(p3); IDbDataParameter p4 = cmd.CreateParameter(); p4.ParameterName = "@ClassID"; p4.Value = (int)airBooking.Class.ClassInfo; cmd.Parameters.Add(p4); IDbDataParameter p5 = cmd.CreateParameter(); p5.ParameterName = "@ContactName"; p5.Value = airBooking.Contact.ContactName; cmd.Parameters.Add(p5); IDbDataParameter p6 = cmd.CreateParameter(); p6.ParameterName = "@Address"; p6.Value = airBooking.Contact.Address; cmd.Parameters.Add(p6); IDbDataParameter p7 = cmd.CreateParameter(); p7.ParameterName = "@City"; p7.Value = airBooking.Contact.City; cmd.Parameters.Add(p7); IDbDataParameter p8 = cmd.CreateParameter(); p8.ParameterName = "@State"; p8.Value = airBooking.Contact.State; cmd.Parameters.Add(p8); IDbDataParameter p9 = cmd.CreateParameter(); p9.ParameterName = "@PinCode"; p9.Value = "000000"; cmd.Parameters.Add(p9); IDbDataParameter p10 = cmd.CreateParameter(); p10.ParameterName = "@Email"; p10.Value = airBooking.Contact.Email; cmd.Parameters.Add(p10); IDbDataParameter p11 = cmd.CreateParameter(); p11.ParameterName = "@PhoneNo"; p11.Value = airBooking.Contact.PhoneNo; cmd.Parameters.Add(p11); IDbDataParameter p12 = cmd.CreateParameter(); p12.ParameterName = "@MobileNo"; p12.Value = airBooking.Contact.MobileNo; cmd.Parameters.Add(p12); IDbDataParameter p13 = cmd.CreateParameter(); p13.ParameterName = "@PaymentRefernceNo"; p13.Value = airBooking.PaymentInfo.ReferenceNo; cmd.Parameters.Add(p13); IDbDataParameter p14 = cmd.CreateParameter(); p14.ParameterName = "@TotalCost"; p14.Value = airBooking.TotalCost; cmd.Parameters.Add(p14); //Concatenate to send to database as a single string string passengerDetails = String.Empty; string name = String.Empty; string gender = String.Empty; string dob = String.Empty; foreach (Passenger p in airBooking.GetPassengers()) { name = p.Name; gender = p.Gender.ToString(); dob = p.DateOfBirth.ToShortDateString(); passengerDetails += name + "|" + gender + "|" + dob + ";"; } IDbDataParameter p15 = cmd.CreateParameter(); p15.ParameterName = "@PassengerDetails"; p15.Value = passengerDetails; cmd.Parameters.Add(p15); IDbDataParameter bookingRefNo = cmd.CreateParameter(); bookingRefNo.Size = -1; bookingRefNo.ParameterName = "@BookingReferenceNumber"; bookingRefNo.Direction = ParameterDirection.Output; bookingRefNo.Value = ""; cmd.Parameters.Add(bookingRefNo); IDbDataParameter lastBookingId = cmd.CreateParameter(); lastBookingId.ParameterName = "@LastBookingID"; lastBookingId.Direction = ParameterDirection.Output; lastBookingId.Value = 0; cmd.Parameters.Add(lastBookingId); //Execute the command cmd.ExecuteNonQuery(); //Get the values from the database bookingReferenceNo = bookingRefNo.Value.ToString(); long bookingId = Convert.ToInt64(lastBookingId.Value); //Insert the schedules for a booking foreach (Schedule s in airBooking.TravelScheduleInfo.GetSchedules()) { try { InsertBookingSchedule(bookingId, s.ID, s.GetFlightCosts().FirstOrDefault().CostPerTicket, dbConnection); } catch (AirTravelBookingException) { throw; } } } catch (AirTravelBookingException) { throw; } catch (DbException ex) { throw new AirTravelBookingException("Unable to insert air travel booking", ex); } catch (Exception ex) { throw new AirTravelBookingException("Unable to insert air travel booking", ex); } finally { if (dbConnection != null && dbConnection.State == ConnectionState.Open) { dbConnection.Close(); } } return(bookingReferenceNo); }
protected void Page_Load(object sender, EventArgs e) { if (Session.Count == 0) { Response.Redirect("~/Index.aspx"); } if (!IsPostBack) { try { #region Obtain the bookingObjects From Session decimal totalCost = 0; TravelBooking _travelBooking = null; FlightBooking flightbookingonward = null; FlightBooking flightbookingreturn = null; if (Session["travelbooking"] != null) { _travelBooking = (TravelBooking)Session["travelbooking"]; flightbookingonward = (FlightBooking)_travelBooking.GetBookingForTravel(TravelDirection.OneWay); flightbookingreturn = (FlightBooking)_travelBooking.GetBookingForTravel(TravelDirection.Return); } else { Response.Redirect("~/Index.aspx"); } if (flightbookingonward != null) { int NoOfSeats = flightbookingonward.NoOfSeats; List <Passenger> lstPassenger = flightbookingonward.GetPassengers();; rptrPassengerInfo.DataSource = lstPassenger; rptrPassengerInfo.DataBind(); rptrOnwardFlightInfo.DataSource = flightbookingonward.TravelScheduleInfo.GetSchedules(); rptrOnwardFlightInfo.DataBind(); totalCost = flightbookingonward.TotalCost; lblHeaderFromCity.Text = flightbookingonward.TravelScheduleInfo.GetSchedules()[0].RouteInfo.FromCity.Name; lblHeaderToCity.Text = flightbookingonward.TravelScheduleInfo.GetSchedules()[0].RouteInfo.ToCity.Name; lblAdults.Text = flightbookingonward.NoOfSeats.ToString(); lblHeaderDepart.Text = flightbookingonward.DateOfJourney.ToString("ddd, dd MMM, yyyy"); lblHeaderDateSeparator.Visible = false; if (_travelBooking.IsReturnAvailable()) { lblHeaderDateSeparator.Visible = true; } //Fill Contacts details lblName.Text = flightbookingonward.Contact.ContactName; lblAddressline1.Text = flightbookingonward.Contact.MobileNo; lblState.Text = flightbookingonward.Contact.State; lblCity.Text = flightbookingonward.Contact.City; lblEmail.Text = flightbookingonward.Contact.Email; lblMobno.Text = flightbookingonward.Contact.MobileNo; lblPhno.Text = flightbookingonward.Contact.PhoneNo; } if (flightbookingreturn != null) { int NoOfSeats = flightbookingreturn.NoOfSeats; rptrReturnFlightInfo.DataSource = flightbookingreturn.TravelScheduleInfo.GetSchedules(); rptrReturnFlightInfo.DataBind(); divReturn.Visible = true; totalCost = totalCost + flightbookingreturn.TotalCost; lblHeaderReturn.Text = flightbookingreturn.DateOfJourney.ToString("ddd, dd MMM, yyyy"); } //Insurance Display decimal insuranceOnwardAmount = 0; decimal insuranceReturnAmount = 0; if (flightbookingonward.Insurance != null) { insuranceOnwardAmount = flightbookingonward.Insurance.Amount; if (flightbookingreturn != null && flightbookingreturn.Insurance != null) { insuranceReturnAmount = flightbookingreturn.Insurance.Amount; } lblInsuranceText.Text = "You have opted to go for travel insurance for the amount : "; lblInsuranceValue.Text = "Onward Journey : INR " + (insuranceOnwardAmount / flightbookingonward.NoOfSeats) + " /- Per Passenger "; if (insuranceReturnAmount > 0) { lblInsuranceValue.Text += "-- Return Journey : INR " + (insuranceReturnAmount / flightbookingreturn.NoOfSeats) + " /- Per Passenger "; } lblInsuranceText.Visible = true; lblInsuranceValue.Visible = true; } else { lblInsuranceValue.Text = "INR 0.0"; lblInsuranceValue.Visible = true; } lblTotalPrice.Text = "INR " + totalCost.ToString(); lblGrandTotal.Text = "INR " + (totalCost + insuranceOnwardAmount + insuranceReturnAmount).ToString(); #endregion } catch (Exception) { lblHeaderDepart.Text = "Sorry !!! Unable to display details"; } } }
/// <summary> /// Inserts into database the booking for air travel /// </summary> /// <param name="newBooking"></param> /// <param name="dbConnection"></param> /// <exception cref="AirTravelBookingException">Throws the AirTravelBookingException, if unable to store a booking</exception> /// <returns>Returns the booking reference number</returns> public string MakeBooking(Booking newBooking, IDbConnection dbConnection, IDbTransaction tran) { string bookingReferenceNo = string.Empty; //Downcast to flight booking FlightBooking airBooking = (FlightBooking)newBooking; try { //Write code to store data into database IDbCommand command = CreateCommand(dbConnection, "BookFlightTicket", CommandType.StoredProcedure, tran); command.Parameters.Add(new SqlParameter() { ParameterName = "@TypeID", DbType = DbType.Int32, Value = (int)airBooking.BookingType }); command.Parameters.Add(new SqlParameter() { ParameterName = "@DateOfJourney", DbType = DbType.DateTime, Value = airBooking.DateOfJourney }); command.Parameters.Add(new SqlParameter() { ParameterName = "@NoOfSeats", DbType = DbType.Int32, Value = airBooking.NoOfSeats }); command.Parameters.Add(new SqlParameter() { ParameterName = "@ClassID", DbType = DbType.Int32, Value = (int)airBooking.Class.ClassInfo }); command.Parameters.Add(new SqlParameter() { ParameterName = "@ContactName", DbType = DbType.String, Value = airBooking.Contact.ContactName }); command.Parameters.Add(new SqlParameter() { ParameterName = "@Address", DbType = DbType.String, Value = airBooking.Contact.Address }); command.Parameters.Add(new SqlParameter() { ParameterName = "@City", DbType = DbType.String, Value = airBooking.Contact.City }); command.Parameters.Add(new SqlParameter() { ParameterName = "@State", DbType = DbType.String, Value = airBooking.Contact.State }); command.Parameters.Add(new SqlParameter() { ParameterName = "@PinCode", DbType = DbType.String, Value = "000000" }); command.Parameters.Add(new SqlParameter() { ParameterName = "@Email", DbType = DbType.String, Value = airBooking.Contact.Email }); command.Parameters.Add(new SqlParameter() { ParameterName = "@PhoneNo", DbType = DbType.String, Value = airBooking.Contact.PhoneNo }); command.Parameters.Add(new SqlParameter() { ParameterName = "@MobileNo", DbType = DbType.String, Value = airBooking.Contact.MobileNo }); command.Parameters.Add(new SqlParameter() { ParameterName = "@PaymentRefernceNo", DbType = DbType.String, Value = airBooking.PaymentInfo.ReferenceNo }); command.Parameters.Add(new SqlParameter() { ParameterName = "@TotalCost", DbType = DbType.Decimal, Value = airBooking.TotalCost }); if (airBooking.Insurance != null) { command.Parameters.Add(new SqlParameter() { ParameterName = "@Insurance", DbType = DbType.Decimal, Value = airBooking.Insurance.Amount }); } else { command.Parameters.Add(new SqlParameter() { ParameterName = "@Insurance", DbType = DbType.Decimal, Value = 0 }); } //Concatenate to send to database as a single string string passengerDetails = String.Empty; string name = String.Empty; string gender = String.Empty; string dob = String.Empty; foreach (Passenger p in airBooking.GetPassengers()) { name = p.Name; gender = p.Gender.ToString(); dob = p.DateOfBirth.ToShortDateString(); passengerDetails += name + "|" + gender + "|" + dob + ";"; } command.Parameters.Add(new SqlParameter() { ParameterName = "@PassengerDetails", DbType = DbType.String, Value = passengerDetails }); SqlParameter prmBookingReferenceNumber = new SqlParameter() { ParameterName = "@BookingReferenceNumber", DbType = DbType.String, Size = 100, Value = 100, Direction = ParameterDirection.Output }; command.Parameters.Add(prmBookingReferenceNumber); SqlParameter prmLastBookingID = new SqlParameter() { ParameterName = "@LastBookingID", DbType = DbType.Int64, Value = 0, Direction = ParameterDirection.Output }; command.Parameters.Add(prmLastBookingID); //Execute the command command.ExecuteNonQuery(); //Get the values from the database bookingReferenceNo = prmBookingReferenceNumber.Value.ToString(); long bookingId = Convert.ToInt64(prmLastBookingID.Value); //Insert the schedules for a booking foreach (Schedule s in airBooking.TravelScheduleInfo.GetSchedules()) { InsertBookingSchedule(bookingId, s.ID, s.GetFlightCosts().FirstOrDefault().CostPerTicket, dbConnection, tran); } } catch (AirTravelBookingException) { throw; } catch (DbException ex) { throw new AirTravelBookingException("Unable to insert air travel booking", ex); } catch (Exception ex) { throw new AirTravelBookingException("Unable to insert air travel booking", ex); } return(bookingReferenceNo); }