public void AddTag(string assetId, DynamicHyperTagViewModel tag)
        {
            if (assetId == null)
            {
                throw new ArgumentNullException(nameof(assetId));
            }

            if (tag.FinishedPaths == null && tag.BasicMLTags == null)
            {
                return;
            }

            HyperTagGroup group;

            if (!AssetToTagList.ContainsKey(assetId))
            {
                group = new HyperTagGroup();
                group.RealWorldContentTimeUTC = tag.RealWorldContentTimeUTC;
                AssetToTagList.Add(assetId, group);
            }
            else
            {
                group = AssetToTagList[assetId];
            }

            group.AddTag(tag);
        }
        public static void AddTag(ref List <DynamicHyperTagViewModel> ans, DynamicHyperTagViewModel newTag)
        {
            int  insert     = 0;
            bool assetFound = false;

            foreach (var t in ans)
            {
                if (t.Tag.AssetGuid == newTag.Tag.AssetGuid)
                {
                    assetFound = true;
                }
                if (assetFound && (t.Tag.AssetGuid != newTag.Tag.AssetGuid))
                {
                    break;
                }
                if (assetFound && (t.WallClockTime.TotalSeconds >= newTag.WallClockTime.TotalSeconds))
                {
                    break;
                }
                insert++;
            }
            ans.Insert(insert, newTag);
        }
 public static DynamicHyperTagViewModel FindParentTag(List <DynamicHyperTagViewModel> list, DynamicHyperTagViewModel childTag)
 {
     foreach (DynamicHyperTagViewModel tag in list)
     {
         if (tag.BaseTagId == childTag.ParentTagId)
         {
             return(tag);
         }
         if (tag.Children != null)
         {
             var childParent = FindParentTag(tag.Children, childTag);
             if (childParent != null)
             {
                 return(childParent);
             }
         }
     }
     return(null);
 }
 public void AddTag(DynamicHyperTagViewModel newTag)
 {
     AddTag(ref DynamicHelperTags, newTag);
 }