protected virtual RequestBuilder BuildRequest(string root)
        {
            var builder = new RequestBuilder(root).
                          AddElement("folio-number", FolioNumber).
                          AddElement("check-in-date", CheckInDate).
                          AddElement("check-out-date", CheckOutDate).
                          AddElement("travel-package", TravelPackage).
                          AddElement("departure-date", DepartureDate).
                          AddElement("lodging-check-in-date", LodgingCheckInDate).
                          AddElement("lodging-check-out-date", LodgingCheckOutDate).
                          AddElement("lodging-name", LodgingName).
                          AddElement("passenger-first-name", PassengerFirstName).
                          AddElement("passenger-last-name", PassengerLastName).
                          AddElement("passenger-middle-initial", PassengerMiddleInitial).
                          AddElement("passenger-title", PassengerTitle).
                          AddElement("travel-agency-name", TravelAgencyName).
                          AddElement("travel-agency-code", TravelAgencyCode).
                          AddElement("ticket-number", TicketNumber).
                          AddElement("issuing-carrier-code", IssuingCarrierCode).
                          AddElement("customer-code", CustomerCode).
                          AddElement("property-phone", PropertyPhone);

            if (RoomRate != null)
            {
                builder.AddElement("room-rate", RoomRate.ToString());
            }
            if (RoomTax != null)
            {
                builder.AddElement("room-tax", RoomTax.ToString());
            }
            if (IssuedDate != null)
            {
                builder.AddElement("issued-date", IssuedDate);
            }
            if (FareAmount != null)
            {
                builder.AddElement("fare-amount", FareAmount);
            }
            if (FeeAmount != null)
            {
                builder.AddElement("fee-amount", FeeAmount);
            }
            if (TaxAmount != null)
            {
                builder.AddElement("tax-amount", TaxAmount);
            }
            if (RestrictedTicket != null)
            {
                builder.AddElement("restricted-ticket", RestrictedTicket);
            }
            if (NoShow != null)
            {
                builder.AddElement("no-show", NoShow);
            }
            if (AdvancedDeposit != null)
            {
                builder.AddElement("advanced-deposit", AdvancedDeposit);
            }
            if (FireSafe != null)
            {
                builder.AddElement("fire-safe", FireSafe);
            }
            if (Legs != null)
            {
                builder.AddElement("legs", Legs);
            }
            if (AdditionalCharges != null)
            {
                builder.AddElement("additional-charges", AdditionalCharges);
            }
            return(builder);
        }