public void Export_Document( ) { IEntityXmlImporter importer = Factory.EntityXmlImporter; IEntityXmlExporter exporter = Factory.EntityXmlExporter; EntityXmlImportResult result; long entityId; // Import - to set up test try { using (RunAsImportExportRole( )) using (Stream stream = EntityXmlImporterTests.GetStream("TestDocument.xml")) using (StreamReader reader = new StreamReader(stream)) { string xml1 = reader.ReadToEnd( ); result = importer.ImportXml(xml1, EntityXmlImportSettings.Default); entityId = result.RootEntities.Single( ); } } catch (Exception ex) { throw new Exception("Import failed during setup for export test", ex); } // Export string xml; using (RunAsImportExportRole( )) { xml = exporter.GenerateXml(entityId, EntityXmlExportSettings.Default); } // Verify XmlDocument doc = new XmlDocument( ); doc.LoadXml(xml); XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); // Note: can't get xpath to work with default namespace ns.AddNamespace("c", "core"); ns.AddNamespace("k", "console"); string expectedHash = "RV6PPKR5NJHP4GU76KIZ2HXB5BX3SPRKDQAIWQL33W7ADWUEOUJQ"; XmlElement e = doc.SelectSingleNode($"/c:xml/c:documents/c:document[@hash='{expectedHash}']", ns) as XmlElement; Assert.That(e, Is.Not.Null, "Document element missing"); string base64 = e.InnerText; Assert.That(base64, Is.StringStarting("H4sIAAAAAAAEAO16ZVRcS7P2QHBCcIK7uwQJGtw").And.StringEnding("r/wGi+uxzRi0AAA==")); }
public void Export_Binary( ) { IEntityXmlImporter importer = Factory.EntityXmlImporter; IEntityXmlExporter exporter = Factory.EntityXmlExporter; EntityXmlImportResult result; long entityId; // Import - to set up test try { using (RunAsImportExportRole( )) using (Stream stream = EntityXmlImporterTests.GetStream("TestPhoto.xml")) using (StreamReader reader = new StreamReader(stream)) { string xml1 = reader.ReadToEnd( ); result = importer.ImportXml(xml1, EntityXmlImportSettings.Default); entityId = result.RootEntities.Single( ); } } catch (Exception ex) { throw new Exception("Import failed during setup for export test", ex); } // Export string xml; using (RunAsImportExportRole( )) { xml = exporter.GenerateXml(entityId, EntityXmlExportSettings.Default); } // Verify XmlDocument doc = new XmlDocument( ); doc.LoadXml(xml); XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); // Note: can't get xpath to work with default namespace ns.AddNamespace("c", "core"); ns.AddNamespace("k", "console"); string expectedHash = "BN7ED5KVSPBOQQL2OELSONW25BI5MBPWS2JSRHQDIO2KW4UBGGMA"; XmlElement e = doc.SelectSingleNode($"/c:xml/c:binaries/c:binary[@hash='{expectedHash}']", ns) as XmlElement; Assert.That(e, Is.Not.Null, "Binary element missing"); string base64 = e.InnerText; Assert.That(base64, Is.StringStarting("H4sIAAAAAAAEAOsM8").And.StringEnding("lNAJmM74+OAQAA")); }
public HttpResponseMessage <ImportResult> ImportXmlGetData([FromUri] string fileId, [FromUri] string fileName = null, [FromUri] bool ignoreDeps = false) { IEntityXmlImporter importer = Factory.EntityXmlImporter; EntityXmlImportResult serviceResult; // Decode settings var settings = new EntityXmlImportSettings { IgnoreMissingDependencies = ignoreDeps }; // Import using (Stream stream = FileRepositoryHelper.GetTemporaryFileDataStream(fileId)) using (var xmlReader = XmlReader.Create(stream)) { serviceResult = importer.ImportXml(xmlReader, settings); } // Format result ImportResult webResult; if (serviceResult.ErrorMessage != null) { webResult = new ImportResult { Success = false, Message = serviceResult.ErrorMessage }; } else { IEntityRepository entityRepository = Factory.EntityRepository; var entities = entityRepository.Get <Resource>(serviceResult.RootEntities); webResult = new ImportResult { Success = true, Entities = entities.Select(FormatEntity).ToList( ) }; } return(new HttpResponseMessage <ImportResult>(webResult)); }
public void Export_Nested_SimplifiedReport( ) { IEntityRepository repository = Factory.EntityRepository; IEntityXmlImporter importer = Factory.EntityXmlImporter; EntityXmlImportResult result; string xml; long entityId = 0; // Import using (RunAsImportExportRole()) using (Stream stream = EntityXmlImporterTests.GetStream("SimplifiedReport.xml")) using (StreamReader reader = new StreamReader(stream)) { xml = reader.ReadToEnd( ); result = importer.ImportXml(xml, EntityXmlImportSettings.Default); } try { entityId = result.RootEntities.Single( ); // Export IEntityXmlExporter exporter = Factory.EntityXmlExporter; string xml2; using (RunAsImportExportRole( )) { xml2 = exporter.GenerateXml(entityId, EntityXmlExportSettings.Default); } XmlDocument doc = new XmlDocument( ); doc.LoadXml(xml2); XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); // Note: can't get xpath to work with default namespace ns.AddNamespace("c", "core"); ns.AddNamespace("k", "console"); XmlElement r = doc.SelectSingleNode("//c:report", ns) as XmlElement; Assert.That(r, Is.Not.Null); Assert.That(r.SelectSingleNode("@id", ns)?.Value, Is.EqualTo("7faec068-162c-4e99-995b-e84f9832fae0")); Assert.That(r.SelectSingleNode("@typeId", ns), Is.Null); Assert.That(r.SelectSingleNode("c:name", ns)?.InnerText, Is.EqualTo("Simple herb")); Assert.That(r.SelectSingleNode("c:rootNode", ns), Is.Not.Null); Assert.That(r.SelectSingleNode("c:rootNode/c:resourceReportNode[@id='5e7c086c-08e5-4aa7-99dc-b4e94d787548']", ns), Is.Not.Null); Assert.That(r.SelectSingleNode("c:rootNode/c:resourceReportNode[@id='5e7c086c-08e5-4aa7-99dc-b4e94d787548']/c:resourceReportNodeType", ns)?.InnerText, Is.EqualTo("a7bf22ab-6834-4d31-8133-5795acb27d69")); XmlElement col = r.SelectSingleNode("c:reportColumns/c:reportColumn[@id='1bb4d52c-0900-435e-9afd-dfb0a6c98b15']", ns) as XmlElement; Assert.That(col, Is.Not.Null); Assert.That(col.SelectSingleNode("c:name", ns)?.InnerText, Is.EqualTo("AA_Herb")); Assert.That(col.SelectSingleNode("c:columnIsHidden", ns)?.InnerText, Is.EqualTo("True")); Assert.That(col.SelectSingleNode("c:columnExpression", ns), Is.Not.Null); Assert.That(col.SelectSingleNode("c:columnExpression/c:fieldExpression[@id='1059aca5-d937-4876-9e54-661e95c14e0a']", ns), Is.Not.Null); Assert.That(col.SelectSingleNode("c:columnExpression/c:fieldExpression[@id='1059aca5-d937-4876-9e54-661e95c14e0a']/c:fieldExpressionField", ns)?.InnerText, Is.EqualTo("name")); Assert.That(col.SelectSingleNode("c:columnExpression/c:fieldExpression[@id='1059aca5-d937-4876-9e54-661e95c14e0a']/c:sourceNode", ns)?.InnerText, Is.EqualTo("5e7c086c-08e5-4aa7-99dc-b4e94d787548")); Assert.That(col.SelectSingleNode("c:columnGrouping/c:reportRowGroup[@id='22bf140b-78e6-4ca7-8169-3d817a8eb1d7']/c:groupingMethod", ns)?.InnerText, Is.EqualTo("groupList")); XmlElement a = doc.SelectSingleNode("//c:aliasMap", ns) as XmlElement; CheckAlias(a, ns, "c:columnExpression", "b4d64bef-e364-4786-ba7e-4a6b2c62d163", "rel"); } finally { Entity.Delete(entityId); } }