Ejemplo n.º 1
0
        public void AddTag(Tag tag)
        {
            if (GetTag(tag.Name) != null && tag.Name != "") // Tags with "" are actually list items
            {
                var index = 0;
                for (var i = 0; i < SubTags.Count; i++)
                {
                    if (SubTags[i].Name == tag.Name)
                    {
                        index = i;
                        break;
                    }
                }

                Logger.Log($"Adding Tag of a similar name {tag.Name}");
                if (tag.SubTags.Count == 0)
                {
                    Logger.Log("Replacing Tag, as it is a value tag");
                    SubTags.RemoveAt(index);
                }
                else
                {
                    Logger.Log("Because there are subtags, merging tags");
                    foreach (var t in tag.SubTags)
                    {
                        SubTags[index].AddTag(t);
                    }

                    return;
                }
            }

            SubTags.Add(tag);
        }
Ejemplo n.º 2
0
 protected internal void AddSubTag(Asn1Tag subTag)
 {
     SubTags.Add(subTag);
     subTag.ParentTag = this;
 }