/// <summary>
        /// Load component properties from a property bag.
        /// </summary>
        /// <param name="propertyBag">Property bag</param>
        /// <param name="errorLog">Error log level</param>
        protected override void LoadProperties(IPropertyBag propertyBag, int errorLog)
        {
            TraceProvider.Logger.TraceIn("Itinerary configurator Load Properties ..");
            string xml = this.ReadPropertyValue <string>(propertyBag, PROPERTIES_PROP_NAME, null);

            if (string.IsNullOrEmpty(xml) == false)
            {
                ItineraryPropertySerializer serializer = new ItineraryPropertySerializer();
                serializer.Deserialize(xml);
                this.ItineraryProperties = serializer.Properties;
            }
            TraceProvider.Logger.TraceOut("Itinerary configurator Load Properties ..");
        }
        /// <summary>
        /// Save component properties to a property bag.
        /// </summary>
        /// <param name="propertyBag">Property bag</param>
        /// <param name="clearDirty">Clear dirty flag</param>
        /// <param name="saveAllProperties">Save all properties flag</param>
        protected override void SaveProperties(IPropertyBag propertyBag, bool clearDirty, bool saveAllProperties)
        {
            TraceProvider.Logger.TraceIn("Itinerary configurator Save Properties ..");

            string xml = null;

            if (this.ItineraryProperties != null)
            {
                ItineraryPropertySerializer serializer = new ItineraryPropertySerializer(this.ItineraryProperties);
                xml = serializer.Serialize();
            }
            this.WritePropertyValue(propertyBag, PROPERTIES_PROP_NAME, xml);
            TraceProvider.Logger.TraceOut("Itinerary configurator Save Properties ..");
        }