Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }