Exemplo n.º 1
0
        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");
        }
Exemplo n.º 3
0
        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
            }
        }
Exemplo n.º 4
0
        /// <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);
        }
Exemplo n.º 5
0
        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";
            }
        }
Exemplo n.º 6
0
        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
        }
Exemplo n.º 7
0
        ///// <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);
        }
Exemplo n.º 8
0
        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);
        }