Example #1
0
        private static async Task Delete1(ICypherGraphClient client)
        {
            Console.WriteLine("Delete example");

            var query = client.Cypher
                        .Match("(x:Player)")
                        .Where <Player>(x => x.Name == "Karol")
                        .DetachDelete("x");

            Console.WriteLine(query.Query.QueryText);

            await query.ExecuteWithoutResultsAsync();
        }
Example #2
0
        private static async Task Set1(ICypherGraphClient client)
        {
            Console.WriteLine("Set example");

            var query = client.Cypher
                        .Match("(x:Player)")
                        .Where <Player>(x => x.Name == "Jan")
                        .Set("x.name = $name")
                        .WithParam("name", "John");

            Console.WriteLine(query.Query.QueryText);

            await query.ExecuteWithoutResultsAsync();
        }
Example #3
0
        private static async Task Query1(ICypherGraphClient client)
        {
            Console.WriteLine("Simple node query");

            var players = await client.Cypher
                          .Match("(x:Player)")
                          .Where <Player>(x => x.Name == "Adam" || x.Name == "Jola")
                          .Return(x => x.As <Player>())
                          .ResultsAsync;

            foreach (var player in players)
            {
                Console.WriteLine(player);
            }
        }
Example #4
0
        public static Task CreateIndexFromProps <T>(this ICypherGraphClient graphClient, params string[] propList)
        {
            if (graphClient == null)
            {
                throw new ArgumentNullException(nameof(graphClient));
            }
            if (propList == null)
            {
                throw new ArgumentNullException(nameof(propList));
            }

            var text = "INDEX ON :" + typeof(T).Name + "(" + string.Join(",", propList) + ")";

            return(graphClient.Cypher.Create(text).ExecuteWithoutResultsAsync());
        }
Example #5
0
        private static async Task Create1(ICypherGraphClient client)
        {
            Console.WriteLine("Create example");

            var query = client.Cypher
                        .Match("(x:Player)")
                        .Where <Player>(x => x.Name == "Jan")
                        .Create("(x)<-[:PLAYED $relData]-(y:Player $playerData)")
                        .WithParam("playerData", new
            {
                name = "Karol", score = 120
            })
                        .WithParam("relData", new
            {
                won = true, date = DateTime.Now
            });

            Console.WriteLine(query.Query.QueryText);

            await query.ExecuteWithoutResultsAsync();
        }
        private static void SetupTestData(ICypherGraphClient client)
        {
            /*
            // https://github.com/Readify/Neo4jClient/wiki/cypher-examples#create-a-user-only-if-they-dont-already-exist
            var newUser = new User {Id = 456, Name = "Jim"};
            client.Cypher
                .Merge("(user:User { Id: {id} })")
                .OnCreate()
                .Set("user = {newUser}")
                .WithParams(new
                {
                    id = newUser.Id,
                    newUser
                })
                .ExecuteWithoutResults();
            */


            // movie data base
            var queryText = File.ReadAllText("CreateMovieDb.cypher");
            ExecuteCypher(client, queryText);
        }
Example #7
0
        private static async Task Query2(ICypherGraphClient client)
        {
            Console.WriteLine("Simple pattern query");

            var query = client.Cypher
                        .Match("(x:Player)-[y:PLAYED]->(z:Player)")
                        .Where <Player, PlayedRelationship>((x, y) => x.Score > 90 && y.Won)
                        .Return((x, z) => new
            {
                Winner = x.As <Player>(),
                Looser = z.As <Player>()
            })
                        .OrderByDescending("y.date");

            Console.WriteLine(query.Query.QueryText);

            var results = await query.ResultsAsync;

            foreach (var item in results)
            {
                Console.WriteLine("{0} won with {1}", item.Winner.Name, item.Looser.Name);
            }
        }
 private static void ExecuteCypher(ICypherGraphClient client, string queryText)
 {
     // https://github.com/Readify/Neo4jClient/wiki/cypher#manual-queries-highly-discouraged
     var query = new CypherQuery(queryText, new Dictionary<string, object>(), CypherResultMode.Projection);
     ((IRawGraphClient)client).ExecuteCypher(query);
 }