private static void read_contactform_element(XmlReader readerXml, ContactForm_Configuration config, ContactForm_Configuration_Element_Type_Enum type)
{
// Create the element object
ContactForm_Configuration_Element newElement = new ContactForm_Configuration_Element(type);
// Read the attributes
if (readerXml.MoveToAttribute("Name"))
{
newElement.Name = readerXml.Value.Trim();
if (String.IsNullOrEmpty(newElement.QueryText.DefaultValue))
newElement.QueryText.DefaultValue = newElement.Name.Replace("_", " ") + ":";
}
if (readerXml.MoveToAttribute("CssClass"))
newElement.CssClass = readerXml.Value.Trim();
if (readerXml.MoveToAttribute("Query"))
newElement.QueryText.DefaultValue = readerXml.Value.Trim();
else if (readerXml.MoveToAttribute("Text"))
newElement.QueryText.DefaultValue = readerXml.Value.Trim();
if (readerXml.MoveToAttribute("UserAttribute"))
{
string attr = readerXml.Value.Trim();
newElement.UserAttribute = User_Object_Attribute_Mapping_Enum_Converter.ToEnum(attr);
}
if (readerXml.MoveToAttribute("AlwaysShow"))
{
string alwaysShow = readerXml.Value.Trim();
switch (alwaysShow.ToLower())
{
case "false":
newElement.AlwaysShow = false;
break;
case "true":
newElement.AlwaysShow = true;
break;
}
}
if (readerXml.MoveToAttribute("Required"))
{
string required = readerXml.Value.Trim();
switch (required.ToLower())
{
case "false":
newElement.Required = false;
break;
case "true":
newElement.Required = true;
break;
}
}
readerXml.MoveToElement();
// Just step through the subtree of this
XmlReader subTreeReader = readerXml.ReadSubtree();
while (subTreeReader.Read())
{
if (subTreeReader.NodeType == XmlNodeType.Element)
{
switch (subTreeReader.Name.ToLower())
{
case "option":
if (!subTreeReader.IsEmptyElement)
{
subTreeReader.Read();
if (newElement.Options == null)
newElement.Options = new List<string>();
newElement.Options.Add(subTreeReader.Value.Trim());
}
break;
case "language":
if (!subTreeReader.IsEmptyElement)
{
if (subTreeReader.MoveToAttribute("Code"))
{
string language_code = subTreeReader.Value.Trim();
Web_Language_Enum enum_lang = Web_Language_Enum_Converter.Code_To_Enum(language_code);
if (enum_lang != Web_Language_Enum.UNDEFINED)
{
subTreeReader.Read();
newElement.QueryText.Add_Translation(enum_lang, subTreeReader.Value.Trim());
}
}
}
break;
}
}
}
config.Add_Element(newElement);
}