public Document(string data) { var document = new Common.Document(data, Parse); foreach (var style in document.Styles) { base.Styles.Add(style); } }
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(); } } } }