[ 
https://issues.apache.org/jira/browse/TINKERPOP-2995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17777058#comment-17777058
 ] 

ASF GitHub Bot commented on TINKERPOP-2995:
-------------------------------------------

FlorianHockmann commented on code in PR #2298:
URL: https://github.com/apache/tinkerpop/pull/2298#discussion_r1364989030


##########
gremlin-dotnet/example/Example.cs:
##########
@@ -0,0 +1,133 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+using Gremlin;
+using Gremlin.Net.Driver;
+using Gremlin.Net.Driver.Remote;
+using Gremlin.Net.Structure.IO.GraphSON;
+using Gremlin.Net.Process.Traversal;
+
+// Common imports
+using static Gremlin.Net.Process.Traversal.AnonymousTraversalSource;
+using static Gremlin.Net.Process.Traversal.__;
+using static Gremlin.Net.Process.Traversal.P;
+using static Gremlin.Net.Process.Traversal.Order;
+using static Gremlin.Net.Process.Traversal.Operator;
+using static Gremlin.Net.Process.Traversal.Pop;
+using static Gremlin.Net.Process.Traversal.Scope;
+using static Gremlin.Net.Process.Traversal.TextP;
+using static Gremlin.Net.Process.Traversal.Column;
+using static Gremlin.Net.Process.Traversal.Direction;
+using static Gremlin.Net.Process.Traversal.Cardinality;
+using static Gremlin.Net.Process.Traversal.CardinalityValue;
+using static Gremlin.Net.Process.Traversal.T;
+
+
+ConnectionExample();
+BasicGremlinExample();
+ModernTraversalExample();
+
+static void ConnectionExample()
+{
+    var server = new GremlinServer("localhost", 8182);
+
+    // Connecting to the server
+    // using var remoteConnection = new DriverRemoteConnection(new 
GremlinClient(server), "g");
+
+    // Connecting to the server with customized configurations
+    using var remoteConnection = new DriverRemoteConnection(new GremlinClient(
+        new GremlinServer(hostname:"localhost", port:8182, enableSsl:false, 
username:"", password:"")), "g");
+
+    // Specifying a serializer
+    var client = new GremlinClient(server, new GraphSON3MessageSerializer());
+
+    // Creating the graph traversal
+    var g = Traversal().WithRemote(remoteConnection);
+}
+
+static void BasicGremlinExample()
+{
+    var server = new GremlinServer("localhost", 8182);
+    using var remoteConnection = new DriverRemoteConnection(new 
GremlinClient(server), "g");
+    var g = Traversal().WithRemote(remoteConnection);
+
+    // Basic Gremlin: adding and retrieving data
+    var v1 = g.AddV("person").Property("name", "marko").Next();
+    var v2 = g.AddV("person").Property("name", "stephen").Next();
+    var v3 = g.AddV("person").Property("name", "vadas").Next();
+
+    // Be sure to use a terminating step like next() or iterate() so that the 
traversal "executes"
+    // Iterate() does not return any data and is used to just generate 
side-effects (i.e. write data to the database)
+    g.V(v1).AddE("knows").To(v2).Property("weight", 0.75).Iterate();
+    g.V(v1).AddE("knows").To(v3).Property("weight", 0.75).Iterate();
+
+    // Retrieve the data from the "marko" vertex
+    var marko = 
g.V().Has("person","name","marko").Values<string>("name").Next();
+    Console.WriteLine("name: " + marko);
+    
+    // Find the "marko" vertex and then traverse to the people he "knows" and 
return their data
+    var peopleMarkoKnows = 
g.V().Has("person","name","marko").Out("knows").Values<string>("name").ToList();
+    foreach (var person in peopleMarkoKnows)
+    {
+        Console.WriteLine("marko knows " + person);
+    }
+}
+
+static void ModernTraversalExample()
+{
+    var server = new GremlinServer("localhost", 8182);
+    using var remoteConnection = new DriverRemoteConnection(new 
GremlinClient(server), "g");
+    var g = Traversal().WithRemote(remoteConnection);
+
+    /*
+    This example requires the Modern toy graph to be preloaded upon launching 
the Gremlin server.
+    For details, see 
https://tinkerpop.apache.org/docs/current/reference/#gremlin-server-docker-image
 and use
+    conf/gremlin-server-modern.yaml.
+    */
+    var e1 = g.V(1).BothE().ToList(); // (1)
+    var e2 = g.V(1).BothE().Where(OtherV().HasId(2)).ToList(); // (2)
+    var v1 = g.V(1).Next();
+    var v2 = g.V(2).Next();
+    var e3 = g.V(v1).BothE().Where(OtherV().Is(v2)).ToList(); // (3)
+    var e4 = g.V(v1).OutE().Where(InV().Is(v2)).ToList(); // (4)
+    var e5 = g.V(1).OutE().Where(InV().Has(T.Id, Within(2, 3))).ToList(); // 
(5)

Review Comment:
   Ah ok, thanks for the explanation. Then we can keep it of course to stay 
consistent.





> Create Sample Applications in each GLV
> --------------------------------------
>
>                 Key: TINKERPOP-2995
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2995
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: dotnet, go, javascript, python
>    Affects Versions: 3.5.7
>            Reporter: Yang Xia
>            Priority: Major
>
> It would be great to have working example applications for each GLV, with 
> basic traversal examples and common connection settings. 
> Currently we have an `example.py` for python, but it is very minimal. There 
> is also an `example.go` for golang, but that appears to be outdated. As far 
> as I know, dotnet only has templates and javascript doesn't have any examples 
> at all. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to