SobekCM.Resource_Object.Configuration.Metadata_Configuration.Add_Metadata_File_ReaderWriter C# (CSharp) Méthode

Add_Metadata_File_ReaderWriter() public méthode

Add a new metadata file reader/writer configuration
public Add_Metadata_File_ReaderWriter ( Metadata_File_ReaderWriter_Config New_ReaderWriter ) : void
New_ReaderWriter Metadata_File_ReaderWriter_Config New metadata file reader/writer configuration
Résultat void
        public void Add_Metadata_File_ReaderWriter(Metadata_File_ReaderWriter_Config New_ReaderWriter)
        {
            // If this type already exists, remove it
            Metadata_File_ReaderWriter_Config existing = null;
            foreach (Metadata_File_ReaderWriter_Config existingConfig in Metadata_File_ReaderWriter_Configs)
            {
                if (New_ReaderWriter.MD_Type == existingConfig.MD_Type)
                {
                    if (New_ReaderWriter.MD_Type == Metadata_File_Type_Enum.OTHER)
                    {
                        if (String.Compare(New_ReaderWriter.Other_MD_Type, existingConfig.Other_MD_Type, StringComparison.OrdinalIgnoreCase) == 0)
                        {
                            existing = existingConfig;
                            break;
                        }
                    }
                    else
                    {
                        existing = existingConfig;
                        break;
                    }
                }
            }
            if (existing != null)
                Metadata_File_ReaderWriter_Configs.Remove(existing);

            // Now, add the new config
            Metadata_File_ReaderWriter_Configs.Add(New_ReaderWriter);
        }

Usage Example

        private static void read_metadata_file_readerwriter_config(XmlReader ReaderXml, Metadata_Configuration Config )
        {
            Metadata_File_ReaderWriter_Config returnValue = new Metadata_File_ReaderWriter_Config();
            ReaderXml.Read();

            // Move to and save the basic attributes
            if (ReaderXml.MoveToAttribute("mdtype"))
            {
                switch (ReaderXml.Value.ToUpper())
                {
                    case "EAD":
                        returnValue.MD_Type = Metadata_File_Type_Enum.EAD;
                        break;

                    case "DC":
                        returnValue.MD_Type = Metadata_File_Type_Enum.DC;
                        break;

                    case "MARC21":
                        returnValue.MD_Type = Metadata_File_Type_Enum.MARC21;
                        break;

                    case "MARCXML":
                        returnValue.MD_Type = Metadata_File_Type_Enum.MARCXML;
                        break;

                    case "METS":
                        returnValue.MD_Type = Metadata_File_Type_Enum.METS;
                        break;

                    case "MODS":
                        returnValue.MD_Type = Metadata_File_Type_Enum.MODS;
                        break;

                    case "OTHER":
                        returnValue.MD_Type = Metadata_File_Type_Enum.OTHER;
                        if (ReaderXml.MoveToAttribute("othermdtype"))
                            returnValue.Other_MD_Type = ReaderXml.Value;
                        break;
                }
            }

            if (ReaderXml.MoveToAttribute("label"))
                returnValue.Label = ReaderXml.Value;
            if (ReaderXml.MoveToAttribute("namespace"))
                returnValue.Code_Namespace = ReaderXml.Value;
            if (ReaderXml.MoveToAttribute("class"))
                returnValue.Code_Class = ReaderXml.Value;
            if (ReaderXml.MoveToAttribute("assembly"))
                returnValue.Code_Assembly = ReaderXml.Value;
            if ((ReaderXml.MoveToAttribute("canRead")) && (ReaderXml.Value.ToLower() == "false"))
            {
                returnValue.canRead = false;
            }
            if ((ReaderXml.MoveToAttribute("canWrite")) && (ReaderXml.Value.ToLower() == "false"))
            {
                returnValue.canWrite = false;
            }

            while (ReaderXml.Read())
            {
                if ((ReaderXml.NodeType == XmlNodeType.Element) && (ReaderXml.Name.ToLower() == "option"))
                {
                    string key = String.Empty;
                    string value = String.Empty;
                    if (ReaderXml.MoveToAttribute("key"))
                        key = ReaderXml.Value;
                    if (ReaderXml.MoveToAttribute("value"))
                        value = ReaderXml.Value;
                    if ((key.Length > 0) && (value.Length > 0))
                        returnValue.Add_Option(key, value);
                }
            }

            Config.Add_Metadata_File_ReaderWriter(returnValue);
        }