public void InsertIf(IESpace espace, List <IKey> keys)
        {
            var links = espace.GetAllDescendantsOfType <GLink>().Where(s => keys.Contains(GetDestination(s).ObjectKey));

            links = InsertIfplus(espace, keys, links);
            ToggleEntities t      = new ToggleEntities();
            ToggleAction   a      = new ToggleAction();
            var            entity = t.GetTogglesEntity(espace);
            var            action = a.GetToggleAction(espace);

            foreach (GLink l in links.ToList())
            {
                if (l.Parent is GParent1)
                {
                    var parent = (GParent1)l.Parent;
                    var rec    = t.CreateRecord(entity, $"FT_{espace.Name}_{GetDestinationName(l)}", $"FT_{GetDestinationName(l)}", espace);

                    CreateIf(parent, l, espace);
                }
                else if (l.Parent is GParent2)
                {
                    var parent = (GParent2)l.Parent;
                    var rec    = t.CreateRecord(entity, $"FT_{espace.Name}_{GetDestinationName(l)}", $"FT_{GetDestinationName(l)}", espace);

                    CreateIf2(parent, l, espace);
                }
                else
                {
                    Console.WriteLine($"Bypass Link {l} because parent is not IPlaceholderContentWidget or IContainerWidget. Parent is {l.Parent}");
                }
            }
        }
        public virtual void InsertIf(IESpace espace, List <IKey> keys)
        {
            var            bl     = espace.GetAllDescendantsOfType <GObjectSignature>().Where(s => keys.Contains(GetObjectKey(s)));
            ToggleEntities t      = new ToggleEntities();
            ToggleAction   a      = new ToggleAction();
            var            entity = t.GetTogglesEntity(espace);
            var            action = a.GetToggleAction(espace);

            foreach (GObjectSignature o in bl.ToList())
            {
                if (o.Parent is GParent)
                {
                    var parent = (GParent)o.Parent;
                    var rec    = t.CreateRecord(entity, $"FT_{espace.Name}_{GetName(o)}", $"FT_{GetName(o)}", espace);
                    CreateIf(parent, o, espace);
                    o.Delete();
                }
                else
                {
                    Console.WriteLine($"Bypass Block {o} because parent is not IPlaceholderContentWidget. Parent is {o.Parent}");
                }
            }
        }