public bool Save_To_Config_File(string FilePath)
{
bool returnValue = true;
StreamWriter writer = null;
try
{
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://digital.uflib.ufl.edu/metadata/sobekcm_config\" ");
writer.WriteLine("\txsi:schemaLocation=\"http://digital.uflib.ufl.edu/metadata/sobekcm_config ");
writer.WriteLine("\t\thttp://digital.uflib.ufl.edu/metadata/sobekcm_config/sobekcm_config.xsd\">");
writer.WriteLine("\t<QualityControl>");
writer.WriteLine("\t\t<Profiles>");
foreach (QualityControl_Profile profile in profilesDictionary.Values)
{
writer.Write("\t\t\t<Profile ");
if (profile.Default_Profile)
writer.Write("isDefault=\"true\" ");
writer.Write("name=\"" + Convert_String_To_XML_Safe(profile.Profile_Name) + "\" ");
writer.WriteLine("description=\"" + Convert_String_To_XML_Safe(profile.Profile_Description) + "\">");
foreach (QualityControl_Division_Config thisConfig in profile.Division_Types)
{
writer.Write("\t\t\t\t<DivisionType DivisionID=\"" + thisConfig.ID + "\" type=\"" + Convert_String_To_XML_Safe(thisConfig.TypeName) + "\" ");
if ( !thisConfig.isActive ) writer.Write( "isActive=\"false\" ");
writer.Write(thisConfig.isNameable ? "isNameable=\"true\" " : "isNameable=\"false\" ");
if (thisConfig.BaseTypeName.Length > 0)
writer.Write("base=\"" + Convert_String_To_XML_Safe(thisConfig.BaseTypeName) + "\" ");
if (thisConfig.hasTranslations)
{
writer.WriteLine(">");
thisConfig.Write_Translations(writer);
writer.WriteLine("\t\t\t\t</DivisionType>");
}
else
{
writer.WriteLine(" />");
}
}
writer.WriteLine("\t\t\t</Profile>");
}
writer.WriteLine("\t\t</Profiles>");
writer.WriteLine("\t</QualityControl>");
writer.WriteLine("</SobekCM_Config>");
writer.Flush();
writer.Close();
}
catch
{
returnValue = false;
}
finally
{
if (writer != null)
writer.Close();
}
return returnValue;
}