/// <summary> /// Run the tutorial. /// </summary> public void Run() { var Graph1 = GraphFactory.CreateGenericPropertyGraph(1); var Graph2 = GraphFactory.CreateGenericPropertyGraph(2); var Graph3 = GraphFactory.CreateGenericPropertyGraph(3); var Graph4 = GraphFactory.CreateGenericPropertyGraph(4); var Graph5 = GraphFactory.CreateGenericPropertyGraph(5); var PartitionGraph1 = GraphFactory.CreatePartitionGraph(23UL, "Stack of graphs 1-5", Graph1, Graph2, Graph3, Graph4, Graph5); var PartitionGraph2 = Graph1.CreatePartitionGraph(42UL, "Stack of graphs 1-3", Graph2, Graph3); Graph2.OnVertexAddition.OnNotification += (graph, vertex) => Console.WriteLine("Vertex #" + vertex.Id + " had been added to graph #" + graph.Id); PartitionGraph1.OnVertexAddition.OnNotification += (graph, vertex) => Console.WriteLine("Vertex #" + vertex.Id + " had been added to the partition graph"); PartitionGraph1.OnVertexAddition.OnVoting += (graph, vertex, vote) => { if (vertex.Id == 7) { Console.WriteLine("The vertex id '7' is not allowed!"); vote.Deny(); } }; Graph1.AddVertex(1, "vertex", v => v.SetProperty("GraphId", 1)); Graph2.AddVertex(2, "vertex", v => v.SetProperty("GraphId", 2)); Graph3.AddVertex(3, "vertex", v => v.SetProperty("GraphId", 3)); Graph4.AddVertex(4, "vertex", v => v.SetProperty("GraphId", 4)); Graph5.AddVertex(5, "vertex", v => v.SetProperty("GraphId", 5)); PartitionGraph1.AddVertex(6, "vertex", v => v.SetProperty("GraphId", 6)); PartitionGraph1.AddVertex(7, "vertex", v => v.SetProperty("GraphId", 7)); Console.WriteLine(PartitionGraph1.NumberOfVertices()); Console.WriteLine(PartitionGraph1.NumberOfVertices(v => v.Id != 3)); var v1a = PartitionGraph1.VertexById(1); // valid var v2a = PartitionGraph1.VertexById(2); // valid var v3a = PartitionGraph1.VertexById(3); // valid var v4a = PartitionGraph1.VertexById(4); // valid var v5a = PartitionGraph1.VertexById(5); // valid var v6a = PartitionGraph1.VertexById(6); // valid var v7x = Graph1.VertexById(7); // null var v7a = PartitionGraph1.VertexById(7); // null var v1b = PartitionGraph2.VertexById(1); // valid var v2b = PartitionGraph2.VertexById(2); // valid var v3b = PartitionGraph2.VertexById(3); // valid var v4b = PartitionGraph2.VertexById(4); // null var v5b = PartitionGraph2.VertexById(5); // null var v6b = PartitionGraph2.VertexById(6); // valid var v7b = PartitionGraph2.VertexById(7); // null }