SobekCM.Core.Configuration.OAIPMH.OAI_PMH_Configuration.Save_To_Config_File C# (CSharp) Method

Save_To_Config_File() public method

Save this OAI-PMH 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("<Config>");

                writer.WriteLine(Enabled ? "\t<OAI-PMH Enabled=\"true\">" : "\t<OAI-PMH Enabled=\"false\">");

                writer.WriteLine("\t\t<Repository IdentifierBase=\"" + Identifier_Base + "\" />");

                // Add the basic identify information
                writer.WriteLine("\t\t<Identify>");
                writer.WriteLine("\t\t\t<Name>" + Convert_String_To_XML_Safe(Name) + "</Name>");
                writer.WriteLine("\t\t\t<Identifier>" + Convert_String_To_XML_Safe(Identifier) + "</Identifier>");

                if ((Admin_Emails != null) && (Admin_Emails.Count > 0))
                {
                    foreach (string thisEmail in Admin_Emails)
                    {
                        writer.WriteLine("\t\t\t<AdminEmail>" + Convert_String_To_XML_Safe(thisEmail) + "</AdminEmail>");
                    }
                }

                if ((Descriptions != null) && (Descriptions.Count > 0))
                {
                    foreach (string description in Descriptions)
                    {
                        writer.WriteLine("\t\t\t<Description>" + Convert_String_To_XML_Safe(description) + "</Description>");
                    }
                }
                writer.WriteLine("\t\t</Identify>");

                // Add the metadata prefixes and the associated assembly/class reference
                if ((Metadata_Prefixes != null) && (Metadata_Prefixes.Count > 0))
                {
                    writer.WriteLine("\t\t<MetadataPrefixes>");

                    foreach (OAI_PMH_Metadata_Format metadataFormat in Metadata_Prefixes)
                    {
                        writer.Write("\t\t\t<MetadataFormat Prefix=\"" + metadataFormat.Prefix + "\" Schema=\"" + metadataFormat.Schema + "\" MetadataNamespace=\"" + metadataFormat.MetadataNamespace + "\"");
                        if ( !String.IsNullOrEmpty(metadataFormat.Assembly))
                            writer.Write(" Assembly=\"" + Convert_String_To_XML_Safe(metadataFormat.Assembly) + "\"");
                        writer.WriteLine(" Namespace=\"" + metadataFormat.Namespace + "\" Class=\"" + metadataFormat.Class + "\" Enabled=\"" + metadataFormat.Enabled.ToString().ToLower() + "\" />");
                    }

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

                writer.WriteLine("\t</OAI-PMH>");
                writer.WriteLine("</Config>");
                writer.Flush();
                writer.Close();
            }
            catch
            {
                returnValue = false;
            }
            finally
            {
                if (writer != null)
                    writer.Close();
            }

            return returnValue;
        }