Esempio n. 1
0
        public void Repro13482()
        {
            var graph = new AdjacencyGraph <Person, TaggedEdge <Person, string> >();

            Person jacob = new Person("Jacob", "Hochstetler")
            {
                BirthDate  = new DateTime(1712, 01, 01),
                BirthPlace = "Alsace, France",
                DeathDate  = new DateTime(1776, 01, 01),
                DeathPlace = "Pennsylvania, USA",
                Gender     = Gender.Male
            };

            Person john = new Person("John", "Hochstetler")
            {
                BirthDate  = new DateTime(1735, 01, 01),
                BirthPlace = "Alsace, France",
                DeathDate  = new DateTime(1805, 04, 15),
                DeathPlace = "Summit Mills, PA",
                Gender     = Gender.Male
            };

            Person jonathon = new Person("Jonathon", "Hochstetler")
            {
                BirthPlace = "Pennsylvania",
                DeathDate  = new DateTime(1823, 05, 08),
                Gender     = Gender.Male,
            };

            Person emanuel = new Person("Emanuel", "Hochstedler")
            {
                BirthDate = new DateTime(1855, 01, 01),
                DeathDate = new DateTime(1900, 01, 01),
                Gender    = Gender.Male
            };

            graph.AddVerticesAndEdge(new TaggedEdge <Person, string>(jacob, john, jacob.ChildRelationshipText));
            graph.AddVerticesAndEdge(new TaggedEdge <Person, string>(john, jonathon, john.ChildRelationshipText));
            graph.AddVerticesAndEdge(new TaggedEdge <Person, string>(jonathon, emanuel, jonathon.ChildRelationshipText));

            var settings = new XmlWriterSettings()
            {
                Indent = true, IndentChars = @"    "
            };

            using (var writer = XmlWriter.Create(Console.Out, settings))
            {
                SerializationExtensions.SerializeToXml(
                    graph,
                    writer,
                    v => v.Id,
                    AlgorithmExtensions.GetEdgeIdentity(graph),
                    "graph",
                    "person",
                    "relationship",
                    "");
            }
        }