/// <summary> /// Interface for providing XML export. /// </summary> /// <remarks> /// This is the entry point for export requests that come via the console. c.f. EntityManager.ExportEntity. /// </remarks> /// <param name="entityIds">ID of entity to export.</param> /// <param name="xmlWriter">Xml Writer to write the exported entity to.</param> /// <param name="settings">Export settings.</param> public void GenerateXml(IEnumerable <long> entityIds, XmlWriter xmlWriter, EntityXmlExportSettings settings) { if (xmlWriter == null) { throw new ArgumentNullException(nameof(xmlWriter)); } if (settings == null) { settings = EntityXmlExportSettings.Default; } var context = new ProcessingContext( ); context.Report.StartTime = DateTime.Now; long tenantId = RequestContext.TenantId; ///// // Create source to load app data from tenant ///// using (IDataTarget target = CreateDataTarget(xmlWriter, settings)) { ExportEntity(tenantId, entityIds, target, context, true); } context.Report.EndTime = DateTime.Now; }
/// <summary> /// Create a data target object. /// </summary> /// <param name="xmlWriter"></param> /// <param name="settings"></param> /// <returns></returns> private IDataTarget CreateDataTarget(XmlWriter xmlWriter, EntityXmlExportSettings settings) { return(new XmlPackageTarget { XmlWriter = xmlWriter, NameResolver = new UpgradeMapNameResolver( ), EntityXmlExportSettings = settings, Format = Format.XmlVer2 }); }
/// <summary> /// Interface for providing XML export. /// </summary> /// <param name="entityIds">ID of entity to export.</param> /// <param name="textWriter">Xml Writer to write the exported entity to.</param> /// <param name="settings">Export settings.</param> public string GenerateXml(IEnumerable <long> entityIds, EntityXmlExportSettings settings) { XmlWriterSettings xmlWriterSettings = GetXmlWriterSettings( ); using (StringWriter stringWriter = new StringWriter( )) using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, xmlWriterSettings)) { GenerateXml(entityIds, xmlWriter, settings); xmlWriter.Flush( ); stringWriter.Flush( ); return(stringWriter.ToString( )); } }