private void read_qc_profiles(XmlReader ReaderXml) { int unnamed_profile_counter = 1; while (ReaderXml.Read()) { if (ReaderXml.NodeType == XmlNodeType.Element) { switch (ReaderXml.Name.ToLower()) { case "profile": QualityControl_Profile profile = new QualityControl_Profile(); XmlReader child_readerXml = ReaderXml.ReadSubtree(); if (ReaderXml.MoveToAttribute("name")) profile.Profile_Name = ReaderXml.Value.Trim(); if (ReaderXml.MoveToAttribute("description")) profile.Profile_Description = ReaderXml.Value; if (ReaderXml.MoveToAttribute("isDefault")) { bool tempValue; if (bool.TryParse(ReaderXml.Value, out tempValue)) { profile.Default_Profile = tempValue; } } // Enforce a name for this profile (should have one according to XSD) if (profile.Profile_Name.Length == 0) { profile.Profile_Name = "Unnamed" + unnamed_profile_counter; unnamed_profile_counter++; } while (child_readerXml.Read()) { if (child_readerXml.NodeType == XmlNodeType.Element && child_readerXml.Name.ToLower() == "divisiontype") // while (readerXml.ReadToNextSibling("DivisionType")) { if (child_readerXml.Name.ToLower() == "divisiontype") { QualityControl_Division_Config thisConfig = new QualityControl_Division_Config(); if (child_readerXml.MoveToAttribute("type")) { thisConfig.TypeName = child_readerXml.Value; } if (child_readerXml.MoveToAttribute("isNameable")) thisConfig.isNameable = Convert.ToBoolean(child_readerXml.Value); profile.Add_Division_Type(thisConfig); } } } Add_Profile(profile); // Add_METS_Writing_Profile(profile); break; case "package_scope": break; case "division_scope": break; case "file_scope": break; case "dmdsec": break; case "amdsec": break; //case "readerwriterref": // if (readerXml.MoveToAttribute("ID")) // { // string id = readerXml.Value.ToUpper(); // if ((readerWriters.ContainsKey(id)) && (profile != null)) // { // METS_Section_ReaderWriter_Config readerWriter = readerWriters[id]; // if (inPackage) // { // if (inDmdSec) // profile.Add_Package_Level_DmdSec_Writer_Config(readerWriter); // else // profile.Add_Package_Level_AmdSec_Writer_Config(readerWriter); // } // else if (inDivision) // { // if (inDmdSec) // profile.Add_Division_Level_DmdSec_Writer_Config(readerWriter); // else // profile.Add_Division_Level_AmdSec_Writer_Config(readerWriter); // } // else if (inFile) // { // if (inDmdSec) // profile.Add_File_Level_DmdSec_Writer_Config(readerWriter); // else // profile.Add_File_Level_AmdSec_Writer_Config(readerWriter); // } // } // } // break; } } } }
/// <summary> Set the default profile with the default values </summary> public void Set_Default_Values() { // Clear everything, just in case Clear(); // Create the default profile QualityControl_Profile newProfile = new QualityControl_Profile { Default_Profile = true, Profile_Name = "System Default", Profile_Description = "Default profile used when no config file is present" }; Add_Profile(newProfile); // Add back cover QualityControl_Division_Config div1 = new QualityControl_Division_Config { ID = 1, TypeName = "Back Cover", isActive = true, isNameable = false, BaseTypeName = "Cover" }; div1.Add_Translation(Web_Language_Enum.Spanish, "Portada Posterior"); div1.Add_Translation(Web_Language_Enum.French, "Couverture Arrière"); newProfile.Add_Division_Type(div1); // Add back matter QualityControl_Division_Config div2 = new QualityControl_Division_Config { ID = 2, TypeName = "Back Matter", isActive = true, isNameable = false }; div2.Add_Translation(Web_Language_Enum.Spanish, "Materia Posterior"); div2.Add_Translation(Web_Language_Enum.French, "Matière Arrière"); newProfile.Add_Division_Type(div2); // Add chapter ( misorder of the object names here and below matters not) QualityControl_Division_Config div4 = new QualityControl_Division_Config { ID = 3, TypeName = "Chapter", isActive = true, isNameable = true }; div4.Add_Translation(Web_Language_Enum.Spanish, "Capítulo"); div4.Add_Translation(Web_Language_Enum.French, "Chapitre"); newProfile.Add_Division_Type(div4); // Add front cover QualityControl_Division_Config div3 = new QualityControl_Division_Config { ID = 4, TypeName = "Front Cover", isActive = true, isNameable = false, BaseTypeName = "Cover" }; div3.Add_Translation(Web_Language_Enum.Spanish, "Portada Delantera"); div3.Add_Translation(Web_Language_Enum.French, "Couverture Frente"); newProfile.Add_Division_Type(div3); // Add front matter QualityControl_Division_Config div5 = new QualityControl_Division_Config { ID = 5, TypeName = "Front Matter", isActive = true, isNameable = false }; div5.Add_Translation(Web_Language_Enum.Spanish, "Materia Delantera"); div5.Add_Translation(Web_Language_Enum.French, "Préliminaires"); newProfile.Add_Division_Type(div5); // Add index QualityControl_Division_Config div6 = new QualityControl_Division_Config { ID = 6, TypeName = "Index", isActive = true, isNameable = true }; div6.Add_Translation(Web_Language_Enum.Spanish, "Indice"); div6.Add_Translation(Web_Language_Enum.French, "Indice"); newProfile.Add_Division_Type(div6); // Add introduction QualityControl_Division_Config div7 = new QualityControl_Division_Config { ID = 7, TypeName = "Introduction", isActive = true, isNameable = false, BaseTypeName = "Chapter" }; div7.Add_Translation(Web_Language_Enum.Spanish, "Introducción"); div7.Add_Translation(Web_Language_Enum.French, "Introduction"); newProfile.Add_Division_Type(div7); // Add spine QualityControl_Division_Config div8 = new QualityControl_Division_Config { ID = 8, TypeName = "Spine", isActive = true, isNameable = false }; div8.Add_Translation(Web_Language_Enum.Spanish, "Canto"); div8.Add_Translation(Web_Language_Enum.French, "Épine de livre"); newProfile.Add_Division_Type(div8); // Add table of contents QualityControl_Division_Config div9 = new QualityControl_Division_Config { ID = 9, TypeName = "Table of Contents", isActive = true, isNameable = false, BaseTypeName = "Contents" }; div9.Add_Translation(Web_Language_Enum.Spanish, "Contenidos"); div9.Add_Translation(Web_Language_Enum.French, "Table des Matières"); newProfile.Add_Division_Type(div9); // Add title page QualityControl_Division_Config div10 = new QualityControl_Division_Config { ID = 10, TypeName = "Title Page", isActive = true, isNameable = false, BaseTypeName = "Title" }; div10.Add_Translation(Web_Language_Enum.Spanish, "Titre"); div10.Add_Translation(Web_Language_Enum.French, "Titulario"); newProfile.Add_Division_Type(div10); }
private static void read_qc_profiles(XmlReader ReaderXml, QualityControl_Configuration Config ) { int unnamed_profile_counter = 1; while (ReaderXml.Read()) { if (ReaderXml.NodeType == XmlNodeType.Element) { switch (ReaderXml.Name.ToLower()) { case "profile": QualityControl_Profile profile = new QualityControl_Profile(); XmlReader child_readerXml = ReaderXml.ReadSubtree(); if (ReaderXml.MoveToAttribute("name")) profile.Profile_Name = ReaderXml.Value.Trim(); if (ReaderXml.MoveToAttribute("description")) profile.Profile_Description = ReaderXml.Value; if (ReaderXml.MoveToAttribute("isDefault")) { bool tempValue; if (bool.TryParse(ReaderXml.Value, out tempValue)) { profile.Default_Profile = tempValue; } } // Enforce a name for this profile (should have one according to XSD) if (profile.Profile_Name.Length == 0) { profile.Profile_Name = "Unnamed" + unnamed_profile_counter; unnamed_profile_counter++; } QualityControl_Division_Config thisConfig = new QualityControl_Division_Config(); while (child_readerXml.Read()) { if (child_readerXml.NodeType == XmlNodeType.Element && child_readerXml.Name.ToLower() == "divisiontype") { thisConfig = new QualityControl_Division_Config(); if (child_readerXml.MoveToAttribute("type")) { thisConfig.TypeName = child_readerXml.Value; } if (child_readerXml.MoveToAttribute("isNameable")) thisConfig.isNameable = Convert.ToBoolean(child_readerXml.Value); if (child_readerXml.MoveToAttribute("base")) { string baseType = child_readerXml.Value; if (!String.Equals(baseType, thisConfig.TypeName, StringComparison.OrdinalIgnoreCase)) { thisConfig.BaseTypeName = baseType; } } profile.Add_Division_Type(thisConfig); } else if (child_readerXml.NodeType == XmlNodeType.Element && child_readerXml.Name.ToLower() == "translation") { if (thisConfig != null) { string language = (child_readerXml.MoveToAttribute("language")) ? child_readerXml.Value : String.Empty; string text = (child_readerXml.MoveToAttribute("text")) ? child_readerXml.Value : String.Empty; if ((!String.IsNullOrEmpty(language)) && (!String.IsNullOrEmpty(text))) { thisConfig.Add_Translation(Web_Language_Enum_Converter.Code_To_Enum(language), text ); } } } } Config.Add_Profile(profile); break; } } } }