Esempio n. 1
0
        private string AppendDataForParent(IRowReceiveRelation rr, string parentRelNode, string label)
        {
            var sb = new StringBuilder();
            var otherAttributes = OtherAttributes(rr);

            sb.AppendLine($"Node{rr.ID} [label=\"{rr.Values[label]}\" {otherAttributes}];");
            if (parentRelNode != null)
            {
                sb.AppendLine($"{parentRelNode} -> Node{rr.ID};");
            }
            var rels = rr.Relations;

            foreach (var relName in rels.Keys)
            {
                if (rels[relName].Count == 0)
                {
                    continue;
                }
                string relNode = $"NodeRel{relName + "_" + rr.ID}";
                sb.AppendLine($"{relNode} [label=\"{ReplaceStringForJavascript(relName)}\"];");
                sb.AppendLine($"Node{rr.ID} -> {relNode};");
                foreach (var childRel in rels[relName])
                {
                    sb.AppendLine(AppendDataForParent(childRel, relNode, label));
                }
            }

            return(sb.ToString());
        }
Esempio n. 2
0
 public void Add(string name, IRowReceiveRelation rel)
 {
     if (!Relations.ContainsKey(name))
     {
         Relations.Add(name, new List <IRowReceiveRelation>());
     }
     Relations[name].Add(rel);
 }
Esempio n. 3
0
 private void FilterRow(IRowReceiveRelation rowReceiveRelation)
 {
     if (rowReceiveRelation == null)
     {
         return;
     }
     foreach (var item in rowReceiveRelation.Relations)
     {
         foreach (var rr in item.Value)
         {
             FilterRow(rr);
         }
         if (Result(search(Filter)(item.Key, NameRelation)))
         {
             ret.AddRange(item.Value);
         }
     }
 }
Esempio n. 4
0
        void Add(IRowReceiveRelation rel)
        {
            if (rel == null)
            {
                return;
            }

            ret.Add(rel);


            foreach (var relationChild in rel.Relations)
            {
                foreach (var item in relationChild.Value)
                {
                    item.Values.Add("NameRelation", relationChild.Key);
                    Add(item);
                }
            }
        }
        void RemoveRelational(IRowReceiveRelation rr)
        {
            if (rr == null)
            {
                return;
            }

            var keys = rr.Relations.Keys.ToArray();

            if (existsProperties)
            {
                foreach (var item in keys.Intersect(ExcludeRelations))
                {
                    rr.Relations.Remove(item);
                }
            }



            foreach (var item in rr.Relations.SelectMany(it => it.Value))
            {
                RemoveRelational(item);
            }
        }