public override void GetData(Object target, Stream outgoingData) { var curr = target.AssertCast<IImmutableHierarchy>(); var root = curr.Hierarchy().Last(); var map = new Dictionary<IImmutableHierarchy, HierarchyNode>(); root.Family().ForEach(node => { var m_node = new HierarchyNode(); map.Add(node, m_node); var m_parent = node.Parent == null ? null : map[node.Parent]; if (m_parent != null) { m_node.Parent = m_parent; m_parent.Children.Add(m_node); } }); var model = new HierarchyModel(map[root], map[curr]); new BinaryFormatter().Serialize(outgoingData, model); }
public override void GetData(Object target, Stream outgoingData) { var curr = target.AssertCast <IImmutableHierarchy>(); var root = curr.Hierarchy().Last(); var map = new Dictionary <IImmutableHierarchy, HierarchyNode>(); root.Family().ForEach(node => { var m_node = new HierarchyNode(); map.Add(node, m_node); var m_parent = node.Parent == null ? null : map[node.Parent]; if (m_parent != null) { m_node.Parent = m_parent; m_parent.Children.Add(m_node); } }); var model = new HierarchyModel(map[root], map[curr]); new BinaryFormatter().Serialize(outgoingData, model); }