public Graph(string name, Value value) { graph = new ValueGraph(name); var valueIsGraph = value.Type == ValueType.Graph; if (value.IsArray && !valueIsGraph) { var array = (Array)value.SourceArray; if (array.Length > 0 && array.All(i => i.Value.Type == ValueType.Graph)) { foreach (var valueGraph in array.Select(item => item.Value).OfType <Graph>().Select(child => child.graph)) { graph[valueGraph.Name] = valueGraph; } } else { graph.Value = array; } } else if (name.IsNotEmpty() && valueIsGraph && ((Graph)value).graph.Name.IsEmpty()) { var childGraph = (Graph)value; foreach (var item in childGraph.graph.Children) { graph[item.Key] = item.Value; } } else { graph.Value = value; } }
public Graph(ValueGraph graph) => this.graph = graph;
public GraphVariable(string name, ValueGraph graph, ValueGraph parent = null) : base(name) { this.graph = graph; this.parent = parent; }