private static void AddRoutes(RoutesMoveHackList routes) { var path = new List <LocalTrainStation>(); var path1 = new List <LocalTrainStation>(); var source = routes.ToString(); var destination = routes.ToString(); //Connect to neo4j GraphClient graphClient = null; var time = ""; if (string.IsNullOrEmpty(time)) { time = DateTime.Now.ToString("hh:mm tt"); } var now = DateTime.Parse(time).TimeOfDay;; try { graphClient = new GraphDb().GetClient(); if (!graphClient.IsConnected) { graphClient.Connect(); } } catch (Exception e) { graphClient = new GraphDb().GetClient(); graphClient.Connect(); } //Neo4j Query var data = "MATCH (start:Stations) , (end:Stations ) MATCH p = allShortestPaths((start) -[r:route *]->(end)) where start.Station =~ '(?i){0}' and end.Station =~ '(?i){1}' and not start = end and all(m2 in relationships(p) where m2.time > 0) RETURN extract(n in nodes(p) | n.Station) as Names, reduce(sum = 0, nn IN relationships(p) | sum + nn.time) as sum order by sum limit 5"; string query = String.Format(data, source, destination); var result = ((IRawGraphClient)graphClient).ExecuteGetCypherResults <PathReturn>(new CypherQuery(query, null, Neo4jClient.Cypher.CypherResultMode.Projection)); routes.Routes.AddRange((List <RoutesMoveHack>)result); }