private void AddDescendants(ObservableVertex vertex)
        {
            foreach (var child in vertex.Model.Children)
            {
                var childVertex = new ObservableVertex(child);

                Graph.AddVerticesAndEdge(new ObserveableEdge(vertex, childVertex));
                AddDescendants(childVertex);
            }
        }
        void AddAncestors(ObservableVertex vertex)
        {
            foreach (var parent in vertex.Model.Parents)
            {
                var parentVertex = new ObservableVertex(parent);

                Graph.AddVerticesAndEdge(new ObserveableEdge(parentVertex, vertex));
                AddAncestors(parentVertex);
            }
        }
        public ObservableGraphViewModel(RxSpyObservableModel model)
        {
            Graph = new ObservableGraph();

            var vertex = new ObservableVertex(model);
            Graph.AddVertex(vertex);

            AddAncestors(vertex);
            AddDescendants(vertex);
        }
        void AddAncestors(ObservableVertex vertex)
        {
            foreach (var parent in vertex.Model.Parents)
            {
                var parentVertex = new ObservableVertex(parent);

                Graph.AddVerticesAndEdge(new ObserveableEdge(parentVertex, vertex));
                AddAncestors(parentVertex);
            }
        }
        private void AddDescendants(ObservableVertex vertex)
        {
            foreach (var child in vertex.Model.Children)
            {
                var childVertex = new ObservableVertex(child);

                Graph.AddVerticesAndEdge(new ObserveableEdge(vertex, childVertex));
                AddDescendants(childVertex);
            }
        }
        public ObservableGraphViewModel(RxSpyObservableModel model)
        {
            Graph = new ObservableGraph();

            var vertex = new ObservableVertex(model);

            Graph.AddVertex(vertex);

            AddAncestors(vertex);
            AddDescendants(vertex);
        }