public Document(string data)
        {
            var document = new Common.Document(data, Parse);

            foreach (var style in document.Styles)
            {
                base.Styles.Add(style);
            }
        }
Exemple #2
0
        public void SaveDocument(Common.Document Document)
        {
            using (var client = this.CreateClient())
            {
                client.Connect();
                client.Cypher.Merge("(d:Document { name : {name}})").OnCreate()
                .Set("d = {newObject}")
                .WithParams(
                    new
                {
                    name      = Document.name,
                    newObject = Document
                }
                    ).ExecuteWithoutResults();

                foreach (var sentence in Document.sentences)
                {
                    client.Cypher.Merge("(s:Sentence { name : {name}})").OnCreate()
                    .Set("s = {newObject}")
                    .WithParams(
                        new
                    {
                        name      = sentence.name,
                        newObject = sentence
                    }
                        ).ExecuteWithoutResults();


                    client.Cypher.Match("(d:Document)", "(s:Sentence)")
                    .Where((Common.Document d) => d.name == Document.name)
                    .AndWhere((Common.Sentence s) => s.name == sentence.name)
                    .Create("(d)-[:has]->(s)").ExecuteWithoutResults();

                    foreach (var token in sentence.tokens)
                    {
                        client.Cypher.Merge("(t:Token { name : {name}})").OnCreate()
                        .Set("t = {newObject}")
                        .WithParams(
                            new
                        {
                            name      = token.name,
                            newObject = token
                        }
                            ).ExecuteWithoutResults();


                        client.Cypher.Match("(s:Sentence)", "(t:Token)")
                        .Where((Common.Sentence s) => s.name == sentence.name)
                        .AndWhere((Common.Token t) => t.name == token.name)
                        .Create("(s)-[:has]->(t)").ExecuteWithoutResults();
                    }
                }
            }
        }