/// <summary> /// 返回单程有一个中转站 且不指定中转站 /// </summary> /// <param name="origincode">起点</param> /// <param name="origindate">起点时间</param> /// <param name="destcode">终点</param> /// <param name="destdate">终点时间</param> public void OneWay1(string origincode, string origindate, string destcode, string destdate) { int stimes = getTimeDays(Session["origintime"].ToString()); int etimes = getTimeDays(Session["desttime"].ToString()); var client = new GraphClient(new Uri("http://120.25.59.147:7474/db/data"), "neo4j", "gaoxia"); client.Connect(); var query = client.Cypher .Match("(origin:Airportday)-[r1:Route]->(a1:Airportday)") .Match("(a2:Airportday{airportcode:a1.airportcode})-[r2:Route]->(dest:Airportday)") .Where((Airport origin) => origin.airportcode == origincode) .AndWhere((Airport origin) => origin.day == origindate) .AndWhere((Airport dest) => dest.airportcode == destcode) .AndWhere((Airport dest) => dest.day == destdate) .AndWhere((Airport a2) => a2.day_long > stimes) .AndWhere((Airport a2) => a2.day_long < etimes) .AndWhere((Airport a2, Airport a1) => a2.day_long >= a1.day_long) //.AndWhere((Route r2, Route r1) => r2.departuretime_long-r1.arrivaltime_long>3 * 3600) .Return((origin, r1, a1, r2, dest) => new { origin = origin.As <Airport>(), r1 = r1.As <Route>(), a1 = a1.As <Airport>(), r2 = r2.As <Route>(), dest = dest.As <Airport>() }).Limit(100); foreach (var result in query.Results) { Route r = new Route(); r.flightno = result.r1.flightno; r.price = result.r1.price; r.arrivaltime = result.r1.arrivaltime; r.departuretime = result.r1.departuretime; Route r2 = new Route(); r2.flightno = result.r2.flightno; r2.price = result.r2.price; r2.arrivaltime = result.r2.arrivaltime; r2.departuretime = result.r2.departuretime; originlist.Add(result.origin.airportcode); routelist.Add(r); airportlist.Add(result.a1.airportcode); routelist2.Add(r2); destlist.Add(result.dest.airportcode); } client.Dispose(); }
public void Dispose() { client.Dispose(); }
public void Dispose() { Client?.Dispose(); }
public void Dispose() { graph.Dispose(); }
private void Disconnect() { client.Dispose(); }
static void Main(string[] args) { // edit these to match your Neo4j Database User and Password string dbuser = "******"; string dbpasswd = "neo4jj"; #region Database Connection via Neo4jClient var client = new GraphClient(new Uri("http://localhost:7474/db/data"), dbuser, dbpasswd); client.Connect(); #endregion #region First Query <Movie, Year, TagLine> // Get the movies var movies = client.Cypher .Match("(m:Movie)") .Return(m => m.As<Movie>()) .Limit(4) .Results; // set title Console.Title = "WSL Neo4j Demo Query"; // clear screen Console.Clear(); // print header Console.WriteLine(); Console.WriteLine("List Movies (Limit = 4)"); Console.WriteLine("-----------------------"); foreach (var movie in movies) { // Write the results Console.WriteLine( $"{movie.Title.PadRight(22)} " + $"{Convert.ToString(movie.Released).PadRight(5)}" + $"{movie.TagLine}" ); } #endregion #region Second Query Actor <Name, Born> var persons = client.Cypher .Match("(a:Person)") .Return(a => a.As<Person>()) .Limit(4) .Results; Console.WriteLine("\nActor Query (Limit = 4)"); Console.WriteLine("-------------------------"); foreach (var person in persons) { // Write the results Console.WriteLine( $"{person.Name.PadRight(20)} " + $"{Convert.ToString(person.Born)}" ); } client.Dispose(); // ensure the client is closed #endregion #region Third and Fourth Query (Producer Joel Silver) and (Acted in and Directed) using (var driver = GraphDatabase.Driver("bolt://localhost", AuthTokens.Basic(dbuser, dbpasswd))) using (var session = driver.Session()) { var result1 = session.Run("MATCH (a:Person)-[:PRODUCED]->(m:Movie) WHERE a.name = 'Tom Hanks' RETURN m"); Console.WriteLine("\nProducer (Tom Hanks)"); Console.WriteLine("-------------------------"); foreach (var node in result1) { var iNode = node["m"].As<INode>(); Console.WriteLine($"{iNode.Properties["title"].As<String>()}"); //Console.WriteLine($"Released: {iNode.Properties["released"].As<String>()}\n\n"); } // Could probably do a UNION or second foreach to get Movie "title" also var result2 = session.Run("MATCH (a)-[:ACTED_IN]->(m)<-[:DIRECTED]-(a) RETURN a"); Console.WriteLine("\nWho Acted & Directed"); Console.WriteLine("------------------------------"); foreach (var node in result2) { var iNode = node["a"].As<INode>(); Console.WriteLine($"{iNode.Properties["name"].As<String>()}" + $", Born in {iNode.Properties["born"].As<String>()}"); } } #endregion Environment.Exit(0); }
public void Dispose() { //_driver?.Dispose(); _client?.Dispose(); }
public void Dispose() { _graphClient.Dispose(); }
public void Dispose() { _client?.Dispose(); }