SobekCM.Core.Configuration.ContactForm_Configuration.Save_To_Config_File C# (CSharp) Method

Save_To_Config_File() public method

Save this configuration to a XML config file
public Save_To_Config_File ( string FilePath ) : bool
FilePath string File/path for the resulting XML config file
return bool
        public bool Save_To_Config_File(string FilePath)
        {
            bool returnValue = true;
            StreamWriter writer = null;
            try
            {
                // Start the output file
                writer = new StreamWriter(FilePath, false, Encoding.UTF8);
                writer.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
                writer.WriteLine("<SobekCM_Config xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" ");
                writer.WriteLine("\txmlns=\"http://sobekrepository.org/schemas/sobekcm_config\" ");
                writer.WriteLine("\txsi:schemaLocation=\"http://sobekrepository.org/schemas/sobekcm_config ");
                writer.WriteLine("\t\thttp://sobekrepository.org/schemas/sobekcm_config.xsd\">");
                if ( String.IsNullOrEmpty(Name))
                    writer.WriteLine("\t<ContactForm>");
                else
                    writer.WriteLine("\t<ContactForm Name=\"" + Convert_String_To_XML_Safe(Name) + "\">");

                if (FormElements.Count > 0)
                {
                    writer.WriteLine("\t\t<Elements>");

                    // Add the elements
                    foreach( ContactForm_Configuration_Element thisElement in FormElements )
                    {
                        string elementName = String.Empty;
                        switch( thisElement.Element_Type )
                        {
                            case ContactForm_Configuration_Element_Type_Enum.CheckBoxSet:
                                elementName = "CheckBoxSet";
                                break;

                            case ContactForm_Configuration_Element_Type_Enum.Email:
                                elementName = "Email";
                                break;

                            case ContactForm_Configuration_Element_Type_Enum.ExplanationText:
                                elementName = "ExplanationText";
                                break;

                            case ContactForm_Configuration_Element_Type_Enum.HiddenValue:
                                elementName = "HiddenValue";
                                break;

                            case ContactForm_Configuration_Element_Type_Enum.RadioSet:
                                elementName = "RadioSet";
                                break;

                            case ContactForm_Configuration_Element_Type_Enum.SelectBox:
                                elementName = "SelectBox";
                                break;

                            case ContactForm_Configuration_Element_Type_Enum.Subject:
                                elementName = "Subject";
                                break;

                            case ContactForm_Configuration_Element_Type_Enum.TextArea:
                                elementName = "TextArea";
                                break;

                            case ContactForm_Configuration_Element_Type_Enum.TextBox:
                                elementName = "TextBox";
                                break;
                        }
                        writer.Write("\t\t\t<" + elementName );
                        if (!String.IsNullOrEmpty(thisElement.Name))
                            writer.Write(" Name=\"" + thisElement.Name + "\"");

                        if (!String.IsNullOrEmpty(thisElement.QueryText.DefaultValue))
                        {
                            if ( thisElement.Element_Type != ContactForm_Configuration_Element_Type_Enum.ExplanationText )
                                writer.Write(" Query=\"" + Convert_String_To_XML_Safe(thisElement.QueryText.DefaultValue) + "\"");
                            else
                                writer.Write(" Text=\"" + Convert_String_To_XML_Safe(thisElement.QueryText.DefaultValue) + "\"");
                        }
                        if (!String.IsNullOrEmpty(thisElement.CssClass))
                            writer.Write(" CssClass=\"" + thisElement.CssClass + "\"");
                        if (thisElement.UserAttribute != User_Object_Attribute_Mapping_Enum.NONE)
                        {
                            writer.Write(" UserAttribute=\"" + User_Object_Attribute_Mapping_Enum_Converter.ToString(thisElement.UserAttribute) + "\"");
                            if (( thisElement.Element_Type != ContactForm_Configuration_Element_Type_Enum.ExplanationText ) && ( thisElement.Element_Type != ContactForm_Configuration_Element_Type_Enum.HiddenValue ))
                                writer.Write(" AlwaysShow=\"" + thisElement.AlwaysShow.ToString().ToLower() + "\"");
                        }
                        if ((thisElement.Element_Type != ContactForm_Configuration_Element_Type_Enum.ExplanationText) && (thisElement.Element_Type != ContactForm_Configuration_Element_Type_Enum.HiddenValue))
                        {
                            if ( thisElement.Required )
                                writer.Write(" Required=\"true\"");
                        }

                        if (((thisElement.Options == null) || (thisElement.Options.Count == 0)) && (thisElement.QueryText.Count <= 1))
                        {
                            writer.WriteLine(" />");
                        }
                        else
                        {
                            writer.WriteLine(">");

                            // Add the query in different languages
                            List<Web_Language_Translation_Value> translations = thisElement.QueryText.Values;
                            if (translations.Count > 0)
                            {
                                writer.WriteLine("\t\t\t\t<Translations>");
                                foreach (Web_Language_Translation_Value thisTranslation in translations)
                                {
                                    writer.WriteLine("\t\t\t\t\t<Language Code=\"" + Web_Language_Enum_Converter.Enum_To_Code( thisTranslation.Language ) + "\">" + Convert_String_To_XML_Safe(thisTranslation.Value) + "</Language>");
                                }
                                writer.WriteLine("\t\t\t\t</Translations>");
                            }

                            // Add the possible options
                            if (( thisElement.Options != null ) && ( thisElement.Options.Count > 0))
                            {
                                writer.WriteLine("\t\t\t\t<Options>");
                                foreach (string thisOption in thisElement.Options)
                                {
                                    writer.WriteLine("\t\t\t\t\t<Option>" + Convert_String_To_XML_Safe(thisOption) + "</Option>");
                                }
                                writer.WriteLine("\t\t\t\t</Options>");
                            }

                            writer.WriteLine("\t\t\t</" + elementName + ">");
                        }
                    }

                    writer.WriteLine("\t\t</Elements>");
                }
                writer.WriteLine("\t</ContactForm>");
                writer.WriteLine("</SobekCM_Config>");
                writer.Flush();
                writer.Close();
            }
            catch
            {
                returnValue = false;
            }
            finally
            {
                if (writer != null)
                    writer.Close();
            }

            return returnValue;
        }