private void ExplainToTheTree(Type type, DnNode parent = null) { var node = GetTreeNode(type); if (node == null) { node = new DnNode { EntityType = type }; DictionaryOfAggregations.Add(type, node); var properties = node.EntityType.GetProperties().Where(x => x.GetCustomAttribute <DnAgregacaoAtributo>(true) != null).ToList(); var types = properties.Select(x => x.PropertyType).ToList(); if (types.Count == 0) { node.IsPrimitive = true; } else { types.ForEach(x => ExplainToTheTree(x, node)); node.ReferencePointers.Add(node); } AddAggregation(node); } if (parent != null) { parent.ReferencePointers.Add(node); } }
private void Setvalue(DnNode node) { foreach (var internalNode in node.ReferencePointers) { if (node.Instance == null) { node.Instance = Setvalue(node.EntityType); } else { return; } Setvalue(internalNode); } if (node.Instance == null) { node.Instance = Setvalue(node.EntityType); } }
private void AddAggregation(DnNode node) { Console.WriteLine($"{node.EntityType.Name} Mapped"); SortedAggregations.Add(node); }