public void XmlSerializationTest() { var tsltn = new TsltnFile() { SourceLanguage = "de", TargetLanguage = "en", SourceDocumentPath = TestFiles.TestXmlPath }; const string SUMMARY = "summary"; var navigator = XmlNavigator.Load(tsltn.SourceDocumentPath); tsltn.SetTranslation(navigator !.GetNodeID(new XElement(SUMMARY, "Hello Car")), "Hallo Auto"); var auto2 = new XElement(SUMMARY, "Car 2"); tsltn.SetTranslation(navigator.GetNodeID(auto2), "Auto 2"); var parent1 = new XElement("Node1", "Hi Manual"); tsltn.SetTranslation(navigator.GetNodeID(parent1), "Hallo Manual"); var parent2 = new XElement("Node2", "Manual 2"); tsltn.SetTranslation(navigator.GetNodeID(parent2), "manuell 2"); var sb = new StringBuilder(); var serializer = new XmlSerializer(typeof(TsltnFile)); using (var writer = new StringWriter(sb)) { serializer.Serialize(writer, tsltn); } string s = sb.ToString(); using var reader = new StringReader(s); var tsltn2 = (TsltnFile)serializer.Deserialize(reader); Assert.AreEqual("de", tsltn2.SourceLanguage); Assert.AreEqual("en", tsltn2.TargetLanguage); Assert.IsTrue(tsltn.TryGetTranslation(navigator.GetNodeID(auto2), out string?transl)); Assert.AreEqual("Auto 2", transl); Assert.IsTrue(tsltn.TryGetTranslation(navigator.GetNodeID(parent2), out string?result)); Assert.AreEqual("manuell 2", result); }
public void XmlNavigatorTest() { var nav = XmlNavigator.Load(TestFiles.TestXmlPath); Assert.IsNotNull(nav); XElement?section = nav !.GetFirstXElement(); Assert.IsNotNull(section); string s; for (int i = 0; i < 20; i++) { if (section is null) { break; } section = nav.GetNextXElement(section); if (section is null) { continue; } _ = nav.GetNodeID(section, out _, out s); Assert.IsNotNull(s); } for (int i = 0; i < 20; i++) { if (section is null) { break; } section = nav.GetPreviousXElement(section); if (section is null) { continue; } _ = nav.GetNodeID(section, out _, out s); Assert.IsNotNull(s); } }
/// <summary> /// ctor /// </summary> /// <param name="tsltnFile">The <see cref="TsltnFile"/> to work with.</param> private Document(TsltnFile tsltnFile) { _tsltn = tsltnFile; Translations = new TranslationsController(_tsltn); Navigator = XmlNavigator.Load(tsltnFile.SourceDocumentPath); FirstNode = Node.InitializeFirstNode(this); if (HasValidSourceDocument) { _fileWatcher = new FileWatcher(SourceDocumentPath); _fileWatcher.SourceDocumentChanged += FileWatcher_SourceDocumentChanged; _fileWatcher.SourceDocumentMoved += FileWatcher_SourceDocumentMoved; //_fileWatcher.SourceDocumentDeleted += FileWatcher_SourceDocumentDeleted; _fileWatcher.FileWatcherError += FileWatcher_FileWatcherError; } }