/// <summary> Constructor for a new instance of the Incoming_Digital_Resource class </summary> /// <param name="Resource_Folder"> Folder for this incoming digital resource </param> /// <param name="Source_Folder"> Parent source folder </param> public Incoming_Digital_Resource(string Resource_Folder, Builder_Source_Folder Source_Folder) { type = Incoming_Digital_Resource_Type.UNKNOWN; resourceFolder = Resource_Folder; sourceFolder = Source_Folder; // Set some defaults bibid = String.Empty; vid = String.Empty; packageTime = DateTime.Now; fileRoot = "collect/image_files/"; }
/// <summary> Constructor for a new instance of the Incoming_Digital_Resource class </summary> /// <param name="ResourceFolder"> Folder for this incoming digital resource </param> /// <param name="SourceFolder"> Parent source folder </param> public Incoming_Digital_Resource(string ResourceFolder, Actionable_Builder_Source_Folder SourceFolder) { type = Incoming_Digital_Resource_Type.UNKNOWN; resourceFolder = ResourceFolder; Source_Folder = SourceFolder; // Set some defaults bibid = String.Empty; vid = String.Empty; packageTime = DateTime.Now; metsTypeOverride = String.Empty; NewImageFiles = new List <string>(); NewPackage = false; fileRoot = "collect/image_files/"; }
/// <summary> Read the METS file and load the data into this object </summary> /// <param name="Source_File"> METS source file to read </param> /// <returns> TRUE if successful, otherwise FALSE </returns> public bool Load_METS(string Source_File) { try { // Load the METS file bibPackage = SobekCM_Item.Read_METS(Source_File); // If null was returned, this failed if (bibPackage == null) { return(false); } // TEMPORARY foreach (Identifier_Info thisIdentifier in bibPackage.Bib_Info.Identifiers) { if (thisIdentifier.Type == "accn") { thisIdentifier.Type = "accession number"; } } // Save the BibID and VID. If a VID already existed here, and not in the METS, // assign that to the METS. (For example, when '00001' can be assumed bibid = bibPackage.BibID; if (bibPackage.VID.Length > 0) { vid = bibPackage.VID; } else if (!String.IsNullOrEmpty(vid)) { bibPackage.VID = vid; } switch (bibPackage.METS_Header.RecordStatus_Enum) { case METS_Record_Status.METADATA_UPDATE: type = Incoming_Digital_Resource_Type.METADATA_UPDATE; break; case METS_Record_Status.COMPLETE: type = Incoming_Digital_Resource_Type.COMPLETE_PACKAGE; break; case METS_Record_Status.PARTIAL: type = Incoming_Digital_Resource_Type.PARTIAL_PACKAGE; break; case METS_Record_Status.DELETE: type = Incoming_Digital_Resource_Type.DELETE; break; case METS_Record_Status.BIB_LEVEL: type = Incoming_Digital_Resource_Type.BIB_LEVEL; break; } return(true); } catch (Exception) { return(false); } }