コード例 #1
0
        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);
        }
コード例 #2
0
        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();
                }
            }
        }