Die Klasse TeamWiSE.Runtime.CTVSupport.Result
bildet Ergebnisse der CTV Engine oder einzelner Dokumente ab. Alle spezifischen Ergebnissen sind von dieser Klasse abgeleitet. Eine Instanz der Klasse Result
kann es nicht geben, sondern immer nur hiervon abgeleitete spezifischen Typen. Instanzen der Result
-Klasse implementieren das Interface IDisposable
. Wenn solche Instanzen freigegeben werden (implizit durch den Garbage-Collector oder explizit über die Dispose()
-Methode oder durch das Ende einer using
-Anweisung) können seine Eigenschaften nicht wieder hergestellt werden. Die für dieses Ergebnis erzeugte Daten sind dann weg. Damit ist auch der verwendete Speicher geringer und ggf. erzeugte temporäre Dateien werden gelöscht.
Man beachte, dass das Ergebnis erst dann aus den ursprünglichen Schriftgut-Instanzen erzeugt wird, wenn das Ergebnis in irgendeiner Form gebraucht wird, bspw. wenn die Datei oder eine URL für die Ergebnisdaten verlangt wird. Bis dahin ist lediglich vermerkt, aus welchen Schriftgut-Instanzen das Ergebnis aufgebaut werden soll.
Ergebnis für Dokumente in der CTV Engine.
using (var result = this.Ctv.GetDocumentsResult<PdfResult>()) { File.Copy(result.Filename, specificTarget); }
Ergebnis für eine Schriftgut Instanz vom Typ Document
.
using (var result = Document.GetResult<PdfResult>()) { File.Copy(result.Filename, specificTarget); }
public string Filename { get; }
Liefert die Pfadangabe, wo das Ergebnis gefunden werden kann. Das Ergebnis wird in einer temporären Datei abgelegt. Mit einem expliziten oder impliziten Dispose()
auf die Result
-Instanz wird die temporäre Datei gelöscht.
public string Url { get; }
Liefert eine URL, unter der das Ergebnis abgerufen werden kann. Die Datei für das Ergebnis wird erstellt wenn noch nicht geschehen und zum Abruf unter einem automatisch erzeugten, eindeutigen Namen in ein Webverzeichnnis kopiert. Die in diesem Webverzeichnis kopierten Ergebnis-Dateien werden weder automatisch aufgeräumt, noch archiviert. Die Dateien werden in das Verzeichnis gestellt, das im Config
-Abschnitt der TAA-Registry mit TempURLDir
angegeben wurde. Die konstruierte URL wird aus dem erzeugten Dateinamen mit einem vorangestellten Base erstellt. Der Base wird aus dem Eintrag TempURLBase
aus dem Config
-Abschnitt der TAA-Registry ermittelt. Es versteht sich, dass die Einträge so gestaltet sein sollten, dass die beiden Angaben zu der physikalisch gleichen Datei führen.
Die Klasse TeamWiSE.Runtime.CTVSupport.PdfResult
beschreibt ein Ergebnis, das in Form einer PDF-Datei aus den zugrunde liegenden Schriftgut-Instanzen erzeugt wurde.
Die Klasse TeamWiSE.Runtime.CTVSupport.OpenXmlResult
beschreibt ein Ergebnis, das in Form einer Open-XML-Datei aus der zugrunde liegenden Schriftgut-Instanz erzeugt wurde. Das OpenXmlResult kann ein Ergebnis nur für ein Open XML Dokument zurück liefern. Enthält die zugrundeliegende Schriftgut-Instanz kein oder mehrere Open XML Dokumente, so werden spezifische Conditions
aufgeworfen, die gegebenenfalls abgefangen und behandelt werden sollten.
try { using (var result = this.Ctv.GetDocumentsResult<OpenXmlResult>()) { File.Copy(result.Filename, specificTarget); } } catch (Zztaaim2.MissingDocuments missingDocuments) { // Fehlerbehandlung } catch (Zztaaim2.TooManyDocuments tooManyDocuments) { // Fehlerbehandlung }
Alternativ ist es auch möglich, ein Ergebnis direkt von einem einzelnen Document
zu bekommen.
foreach (var document in this.Ctv.DocumentLeaves.Where(doc => doc.CanDeliverOpenXml)) { using (var result = document.GetResult<OpenXmlResult>()) { File.Copy(result.Filename, specificTarget); } }
Die Klasse TeamWiSE.Runtime.CTVSupport.RtfResult
beschreibt ein Ergebnis, das in Form einer RTF-Datei aus den zugrunde liegenden Schriftgut-Instanzen erzeugt wurde.