Exemple #1
0
        /// <summary>
        /// Set the parameters in the properties storage from a specified xml representation of the data.
        /// </summary>
        /// <param name="xml">The xml representation of the data.</param>
        /// <param name="properties">The global properties storage.</param>
        /// <param name="handler">The handler that holds the builder- to parameter-type relation.</param>
        /// <returns>
        /// A new instance of a matching parameter data set for the specified builder.
        /// </returns>
        /// <exception cref="InvalidCastException"><c>InvalidCastException</c> Problem building from serialization data.</exception>
        public IMemberBuildParameters SetParameters(string xml, IBuildDataDictionary properties, IBuildHandler handler)
        {
            Guard.NotNull(() => properties, properties);
            if (handler == null)
            {
                // Todo: or throw?
                return(new EmptyBuildParameters());
            }

            // <NStub.CSharp.ObjectGeneration.Builders.PropertyBuilder>
            var doc = new XmlDocument();

            doc.LoadXml(xml);

            IMemberBuildParameters setupPara = null;

            foreach (XmlNode child in doc.ChildNodes)
            {
                //var child = doc.FirstChild;
                if (handler.IsMultiBuilder)
                {
                    // Hier HAPERTS !!!!!!!!!!!!!!!!!!! multi fetchen ... document node klappt nicht
                    // setupPara = SetSingleNode(properties, handler, child, "Multi." + handler.Type.FullName, string.Empty);
                    setupPara = SetSingleNode(properties, handler, child);
                }
                else
                {
                    setupPara = SetSingleNode(properties, handler, child);
                }
            }

            return(setupPara);
        }
Exemple #2
0
 /// <summary>
 /// Gets the xml data representation of a single registered <see cref="IMemberBuilder"/>s parameters.
 /// </summary>
 /// <param name="builderType">Type of the builder to request data for.</param>
 /// <param name="parameters">The parameters with the data to serialize.</param>
 /// <returns>
 /// The serialized data of the specified <paramref name="builderType"/>.
 /// </returns>
 public string SerializeParametersForBuilderType(Type builderType, IMemberBuildParameters parameters)
 {
     return(SerializeParametersForBuilderType(builderType, parameters.GetType().Name, parameters.Serialize()));
 }
Exemple #3
0
        private static void SerializeParameterToXmlDocument(XmlDocument xmlDoc, XmlElement root, IMemberBuildParameters setupPara, string builderFullName)
        {
            var setupParaType     = setupPara.GetType(); // handler.ParameterDataType;
            var setupParaXml      = setupPara.Serialize();
            var setupParaTypeName = setupParaType.Name;

            var ele  = xmlDoc.CreateElement(builderFullName);
            var ele2 = xmlDoc.CreateElement(setupParaTypeName);

            root.AppendChild(ele);
            ele.AppendChild(ele2);
            var innerDoc = new XmlDocument();
            var xml      = setupParaXml;

            innerDoc.LoadXml(xml);
            ele2.InnerXml = innerDoc[setupParaTypeName].InnerXml;
            foreach (XmlAttribute item in innerDoc[setupParaTypeName].Attributes)
            {
                if (item.Name != "xmlns:xsi" && item.Name != "xmlns:xsd")
                {
                    var attr = xmlDoc.CreateAttribute(item.Name);
                    attr.Value = item.Value;
                    ele2.Attributes.Append(attr);
                }
            }
        }
Exemple #4
0
        private static void SerializeParameterToXmlDocument(XmlDocument xmlDoc, XmlElement root, IMemberBuildParameters setupPara, string builderFullName)
        {
            var setupParaType = setupPara.GetType(); // handler.ParameterDataType;
            var setupParaXml = setupPara.Serialize();
            var setupParaTypeName = setupParaType.Name;

            var ele = xmlDoc.CreateElement(builderFullName);
            var ele2 = xmlDoc.CreateElement(setupParaTypeName);
            root.AppendChild(ele);
            ele.AppendChild(ele2);
            var innerDoc = new XmlDocument();
            var xml = setupParaXml;
            innerDoc.LoadXml(xml);
            ele2.InnerXml = innerDoc[setupParaTypeName].InnerXml;
            foreach (XmlAttribute item in innerDoc[setupParaTypeName].Attributes)
            {
                if (item.Name != "xmlns:xsi" && item.Name != "xmlns:xsd")
                {
                    var attr = xmlDoc.CreateAttribute(item.Name);
                    attr.Value = item.Value;
                    ele2.Attributes.Append(attr);
                }
            }
        }
Exemple #5
0
 /// <summary>
 /// Gets the xml data representation of a single registered <see cref="IMemberBuilder"/>s parameters.
 /// </summary>
 /// <param name="builderType">Type of the builder to request data for.</param>
 /// <param name="parameters">The parameters with the data to serialize.</param>
 /// <returns>
 /// The serialized data of the specified <paramref name="builderType"/>.
 /// </returns>
 public string SerializeParametersForBuilderType(Type builderType, IMemberBuildParameters parameters)
 {
     return SerializeParametersForBuilderType(builderType, parameters.GetType().Name, parameters.Serialize());
 }
Exemple #6
0
        /// <summary>
        /// Adds the static builder parameter to the configured builders checked list box.
        /// </summary>
        /// <param name="builderType">The Type of the <see cref="IMemberBuilder"/> to add.</param>
        /// <param name="para">The parameter associated with the specified <paramref name="builderType"/>.</param>
        private void AddParameterToBox(Type builderType, IMemberBuildParameters para)
        {
            var chkItemIndex = this.chklbParameters.Items.Add(builderType);

            this.chklbParameters.SetItemChecked(chkItemIndex, para.Enabled);
        }