/// <summary> Reads metadata from an open stream and saves to the provided item/package </summary> /// <param name="Input_Stream"> Open stream to read metadata from </param> /// <param name="Return_Package"> Package into which to read the metadata </param> /// <param name="Options"> Dictionary of any options which this metadata reader/writer may utilize </param> /// <param name="Error_Message">[OUTPUT] Explanation of the error, if an error occurs during reading </param> /// <returns>TRUE if successful, otherwise FALSE </returns> public bool Read_Metadata(Stream Input_Stream, SobekCM_Item Return_Package, Dictionary <string, object> Options, out string Error_Message) { // Set default error outpt message Error_Message = String.Empty; // Create a XML reader and read the metadata XmlTextReader nodeReader = null; bool returnValue = true; try { // create the node reader nodeReader = new XmlTextReader(Input_Stream); MarcXML_METS_dmdSec_ReaderWriter.Read_MarcXML_Info(nodeReader, Return_Package.Bib_Info, Return_Package, true); } catch (Exception ee) { Error_Message = "Error reading MarcXML from stream: " + ee.Message; returnValue = false; } finally { if (nodeReader != null) { nodeReader.Close(); } } return(returnValue); }
/// <summary> Reads metadata from an existing metadata file and saves to the provided item/package </summary> /// <param name="MetadataFilePathName"> Path and name of the metadata file to read </param> /// <param name="Return_Package"> Package into which to read the metadata </param> /// <param name="Options"> Dictionary of any options which this metadata reader/writer may utilize </param> /// <param name="Error_Message">[OUTPUT] Explanation of the error, if an error occurs during reading </param> /// <returns>TRUE if successful, otherwise FALSE </returns> public bool Read_Metadata(string MetadataFilePathName, SobekCM_Item Return_Package, Dictionary <string, object> Options, out string Error_Message) { // Set default error outpt message Error_Message = String.Empty; // Create a stream and XML reader and read the metadata Stream reader = null; XmlTextReader nodeReader = null; bool returnValue = true; try { reader = new FileStream(MetadataFilePathName, FileMode.Open, FileAccess.Read); // create the node reader nodeReader = new XmlTextReader(reader); MarcXML_METS_dmdSec_ReaderWriter.Read_MarcXML_Info(nodeReader, Return_Package.Bib_Info, Return_Package, true, Options); } catch (Exception ee) { Error_Message = "Error reading MarcXML from stream: " + ee.Message; returnValue = false; } finally { if (nodeReader != null) { nodeReader.Close(); } if (reader != null) { reader.Close(); } } return(returnValue); }