private string Ingest(FoxmlExporter xml, string identifier) { StringWriter sw = new StringWriter(); XmlTextWriter xw = new XmlTextWriter(sw); xml.FOXML.WriteTo(xw); System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); byte[] obj = encoding.GetBytes(sw.ToString()); string newPid = null; try { newPid = manager.ingest(obj, "info:fedora/fedora-system:FOXML-1.1", "Ingestão do documento " + identifier); return(newPid); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); return(null); } }
public bool AddObject(ObjDigital objDigital) { try { string newPid = manager.getNextPID("1", serverNamespace)[0]; if (objDigital.pid == "-1") { objDigital.pid = newPid; } FoxmlExporter foxml; if (objDigital.GetType() == typeof(ObjDigSimples)) { foxml = new FoxmlExporter(objDigital as ObjDigSimples, gisaOperator, newPid, serverNamespace); } else { foxml = new FoxmlExporter(objDigital as ObjDigComposto, gisaOperator, newPid, ((ObjDigComposto)objDigital).objSimples, serverNamespace); } if (Ingest(foxml, newPid) != null) { Trace.WriteLine(newPid + " foi ingerido."); objDigital.pid = newPid; objDigital.state = State.unchanged; return(true); } Trace.WriteLine(newPid + " não foi ingerido."); return(false); } catch (Exception ex) { Trace.WriteLine(ex.ToString()); return(false); } }