Validate widget controls generate warnings - Bugs & Issues - Bugs & Issues - Progress Community
 Bugs & Issues

Validate widget controls generate warnings

  • Validate widget controls generate warnings
  • We had been creating pages and adding controls via API in our custom module during 
    Install/Upgrade for a while, but in this version when accessing the PageDraft.Controls Collections it shows warnings in the initialization window, although the process continue normally.

    In the below code you can see how we try to find a mvc control in a specific page, if it does not exist we add the control. This code is called from module upgrate method.

    public class OurCustomeModule : ModuleBase

        public override void Upgrade(Telerik.Sitefinity.Abstractions.SiteInitializer initializer, Version upgradeFrom)
       
                //Try to add custom controls to a page here
       


    The thing is a soon as the "Controls" collection is accessed it throws exceptions that appear in the initialization window as seen in the attachments.

     

    var pageManager = PageManager.GetManager();
    pageManager.Provider.SuppressSecurityChecks = true;
    Telerik.Sitefinity.Mvc.Proxy.MvcControllerProxy control = new Telerik.Sitefinity.Mvc.Proxy.MvcControllerProxy();
    control.ControllerName = controllerType.FullName;
    var pageNode = pageManager.GetPageNodes().Where(p => p.Id == pageId).SingleOrDefault();
    var pageControl = pageManager.CreateControl<PageDraftControl>(control, placeHolder);
               
    if (pageNode != null && pageControl != null)
        PageDraft temp = pageManager.EditPage(pageNode.PageId);
        if (temp != null)
        
            PageDraftControl controlfound = null;
            controlfound = temp.Controls.FirstOrDefault(ctrl => ctrl.ObjectType ==   pageControl.ObjectType && ctrl.Caption == pageControl.Caption);
            if (controlfound == null)
            
               pageManager.SetControlDefaultPermissions(pageControl);
               temp.Controls.Add(pageControl);
               temp = pageManager.PagesLifecycle.CheckIn(temp);
               pageManager.PagesLifecycle.Publish(temp);
               pageManager.SaveChanges();
             
       
    pageManager.Provider.SuppressSecurityChecks = false;

    Thanks