public void RemoveFileGroupElement(MetsFileGroup fileGroup) { if (fileGroupList.Contains(fileGroup)) { fileGroupList.Remove(fileGroup); } }
public void AddFileGroupElement(MetsFileGroup fileGroup) { if (!fileGroupList.Contains(fileGroup)) { fileGroupList.Add(fileGroup); } }
private void DoTheMETS(ObjDigital obj, string[] logMessage) { var idsGisa = new string[] { obj.gisa_id }; var title = obj.titulo; var type = obj.tipologia; // Ficheiro METS mets = new MetsFile(null, null, title, type, null); // Header - criador, hora de criação, e IDs alternativos mets.header = new MetsHeaderSection(null, null, Utility.Now(), null, null); mets.header.AddAgent(new MetsAgent(null, MetsAgentRole.Archivist, null, MetsAgentType.Individual, null, userName, logMessage)); foreach (string s in idsGisa.Where(id => id.Length > 0)) { string typeID = s.Substring(0, s.IndexOf(':')); mets.header.AddAltID(new MetsAlternativeIdentifier(null, typeID, s)); } // Criar a secção de Ficheiros mets.fileSection = new MetsFileSection(null); MetsFileGroup fileGrp = new MetsFileGroup(null, null, null, "Conteúdos"); mets.fileSection.AddFileGroupElement(fileGrp); MetsStructMap structa = null; MetsStructDivision largeFile = null; if (obj.GetType() == typeof(ObjDigSimples)) { ObjDigSimples objSimples = obj as ObjDigSimples; structa = new MetsStructMap(null, "PHYSICAL", "Estruturação em imagens do " + title); largeFile = new MetsStructDivision(null, type, title, null, null, null, null, null, null); for (int i = 0; i < objSimples.fich_associados.Count; i++) { Anexo ficheiro = objSimples.fich_associados[i]; if (ficheiro.dataStreamID == null) { ficheiro.dataStreamID = "IMG" + objSimples.nextDatastreamId; objSimples.nextDatastreamId++; } string uName = ficheiro.dataStreamID; MetsFileElement file = new MetsFileElement(uName, ficheiro.mimeType, (i + 1).ToString(), null, null, null, MetsChecksumType.NONE, null, null, null, null, null); file.AddFLocat(new MetsXLinkElement(null, null, MetsLocatorType.Other, "Nome de Datastream", uName, null, null, null, null, null)); fileGrp.AddFileElement(file); MetsStructDivision div = new MetsStructDivision(null, ficheiro.mimeType, title, null, null, (i + 1).ToString(), null, null, null); div.AddFilePointer(new MetsFilePointer(null, uName, null)); largeFile.AddDivision(div); } } else { ObjDigComposto objComposto = obj as ObjDigComposto; structa = new MetsStructMap(null, "LOGICAL", "Estruturação em partes do " + title); largeFile = new MetsStructDivision(null, type, title, null, null, null, null, null, null); foreach (ObjDigSimples sd in objComposto.objSimples) { // Apenas queremos fazer isto se o objecto não estiver marcado como apagado if (sd.state != State.deleted) { string pid = sd.pid; MetsStructDivision div = new MetsStructDivision(null, sd.tipologia, sd.titulo, null, null, (objComposto.objSimples.IndexOf(sd) + 1).ToString(), null, null, null); div.AddFilePointer(new MetsFilePointer(null, pid, null)); largeFile.AddDivision(div); } } } structa.AddDivision(largeFile); mets.AddStructMap(structa); }
public void RemoveFileGroupElement(MetsFileGroup fileGroup) { if (fileGroupList.Contains(fileGroup)) fileGroupList.Remove(fileGroup); }
public void AddFileGroupElement(MetsFileGroup fileGroup) { if (!fileGroupList.Contains(fileGroup)) fileGroupList.Add(fileGroup); }