Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 private void AddAggregation(DnNode node)
 {
     Console.WriteLine($"{node.EntityType.Name} Mapped");
     SortedAggregations.Add(node);
 }