コード例 #1
0
ファイル: TsltnFileTests.cs プロジェクト: FolkerKinzel/Tsltn
    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);
    }
コード例 #2
0
    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);
        }
    }
コード例 #3
0
ファイル: Document.cs プロジェクト: FolkerKinzel/Tsltn
    /// <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;
        }
    }