예제 #1
0
        public void ShouldCreateParameterStatement()
        {
            var factory = new AttributeMetadataFactory(new NullLogger());
            var person  = new Person {
                Id = "1"
            };
            var node   = new Node(factory.Create(person), person);
            var result = StatementFactory.Parameter(node);

            Assert.Equal("Person_1", result);
        }
예제 #2
0
        public void MatchShouldGenerateValidSyntax()
        {
            var factory = new AttributeMetadataFactory(null);
            var person  = new Person {
                Id = "1"
            };
            var node      = new Node(factory.Create(person), person);
            var statement = StatementFactory.Match(node, StatementFactory.Parameter(node));
            var query     = new CypherQuery <Person>();
            var response  = query.Match(statement);

            Assert.Equal("MATCH (Person_1:Person { Id:{Person_1}})", response.Statement);
        }
예제 #3
0
        public ICypherQuery Execute(ICypherQuery query)
        {
            var node  = StatementFactory.Parameter(_node);
            var id    = StatementFactory.IdParameter(_node);
            var merge = StatementFactory.Merge(_node, id);
            var set   = StatementFactory.Set(_node, node);

            query = query
                    .Merge(merge)
                    .OnCreate()
                    .Set(set)
                    .OnMatch()
                    .Set(set)
                    .WithParam(node, _factory().ToDictionary())
                    .WithParam(id, ProxyUtils.GetEntityId(_node));
            return(query);
        }