public AirportsNetwork Import(NetworkSize size) { XmlDocument xmlDoc = new XmlDocument(); if (size == NetworkSize.Normal) { xmlDoc.Load("SampleData\\air-routes.graphml"); } else { xmlDoc.Load("SampleData\\air-routes-small.graphml"); } var airportNetwork = new AirportsNetwork(); foreach (XmlNode node in xmlDoc.GetElementsByTagName("node")) { switch (node.ChildNodes[0].InnerText) { case "airport": airportNetwork.Airports.Add(ParseAirport(node)); break; case "country": airportNetwork.Countries.Add(ParseCountry(node)); break; case "continent": airportNetwork.Continents.Add(ParseContinent(node)); break; } } foreach (XmlNode node in xmlDoc.GetElementsByTagName("edge")) { switch (node.ChildNodes[0].InnerText) { case "route": airportNetwork.Routes.Add(ParseRoute(node)); break; case "contains": airportNetwork.Relations.Add(ParseContain(node)); break; } } if (size == NetworkSize.Reduced) { airportNetwork.CleanRelations(); } return(airportNetwork); }
public void UploadAirportsNetwork(AirportsNetwork network) { var gremlinServer = new GremlinServer(this.hostName, port, enableSsl: true, username: "******" + this.databaseName + "/colls/" + this.collectionName, password: authKey); using (var gremlinClient = new GremlinClient(gremlinServer, new GraphSON2Reader(), new GraphSON2Writer(), GremlinClient.GraphSON2MimeType)) { gremlinClient.SubmitAsync <dynamic>("g.V().drop()").Wait(); Console.WriteLine("Uploading airports"); foreach (Airport airport in network.Airports) { var query = CreateAirportQuery(airport); gremlinClient.SubmitAsync <dynamic>(query).Wait(); } Console.WriteLine("Uploading countries"); foreach (Country country in network.Countries) { var query = CreateCountryQuery(country); gremlinClient.SubmitAsync <dynamic>(query).Wait(); } Console.WriteLine("Uploading continents"); foreach (Continent continent in network.Continents) { var query = CreateContinentQuery(continent); gremlinClient.SubmitAsync <dynamic>(query).Wait(); } Console.WriteLine("Uploading relations"); foreach (Edge relation in network.Relations) { var query = CreateContainsQuery(relation, network.Continents, network.Countries, network.Airports); gremlinClient.SubmitAsync <dynamic>(query).Wait(); } Console.WriteLine("Uploading routes"); foreach (Route route in network.Routes) { var query = CreateRouteQuery(route, network.Airports); gremlinClient.SubmitAsync <dynamic>(query).Wait(); } } }