internal static void EnsureDesignerThemes(IServiceProvider serviceProvider, WorkflowTheme workflowTheme, TreeNode[] items)
 {
     //We need to recurse thru the themes and make sure that we have all the designer themes created
     foreach (TreeNode item in items)
     {
         DesignerTheme designerTheme = null;
         Type activityType = item.Tag as Type;
         if (activityType != null)
         {
             Type designerBaseType = (activityType.FullName.Equals(DesignerHelpers.SequentialWorkflowTypeRef, StringComparison.OrdinalIgnoreCase)) ? typeof(IRootDesigner) : typeof(IDesigner);
             Type designerType = ActivityDesigner.GetDesignerType(serviceProvider, activityType, designerBaseType);
             if (designerType != null)
                 designerTheme = workflowTheme.GetTheme(designerType);
         }
     }
 }
 internal static DesignerTheme[] GetDesignerThemes(IServiceProvider serviceProvider, WorkflowTheme workflowTheme, TreeNode selectedNode)
 {
     ArrayList list = new ArrayList();
     Queue<TreeNode> queue = new Queue<TreeNode>();
     queue.Enqueue(selectedNode);
     while (queue.Count > 0)
     {
         TreeNode node = queue.Dequeue();
         System.Type tag = node.Tag as System.Type;
         if (tag != null)
         {
             System.Type designerBaseType = tag.FullName.Equals("System.Workflow.Activities.SequentialWorkflowActivity, System.Workflow.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", StringComparison.OrdinalIgnoreCase) ? typeof(IRootDesigner) : typeof(IDesigner);
             System.Type designerType = ActivityDesigner.GetDesignerType(serviceProvider, tag, designerBaseType);
             if (designerType != null)
             {
                 DesignerTheme theme = workflowTheme.GetTheme(designerType);
                 if (theme != null)
                 {
                     list.Add(theme);
                 }
             }
         }
         else
         {
             foreach (TreeNode node2 in node.Nodes)
             {
                 queue.Enqueue(node2);
             }
             continue;
         }
     }
     return (DesignerTheme[]) list.ToArray(typeof(DesignerTheme));
 }
            internal static DesignerTheme[] GetDesignerThemes(IServiceProvider serviceProvider, WorkflowTheme workflowTheme, TreeNode selectedNode)
            {
                ArrayList designerThemes = new ArrayList();
                Queue<TreeNode> nodes = new Queue<TreeNode>();
                nodes.Enqueue(selectedNode);
                while (nodes.Count > 0)
                {
                    TreeNode treeNode = nodes.Dequeue();
                    Type activityType = treeNode.Tag as System.Type;
                    if (activityType != null)
                    {
                        Type designerBaseType = (activityType.FullName.Equals(DesignerHelpers.SequentialWorkflowTypeRef, StringComparison.OrdinalIgnoreCase)) ? typeof(IRootDesigner) : typeof(IDesigner);
                        Type designerType = ActivityDesigner.GetDesignerType(serviceProvider, activityType, designerBaseType);
                        if (designerType != null)
                        {
                            DesignerTheme designerTheme = workflowTheme.GetTheme(designerType);
                            if (designerTheme != null)
                                designerThemes.Add(designerTheme);
                        }
                    }
                    else
                    {
                        foreach (TreeNode childNode in treeNode.Nodes)
                            nodes.Enqueue(childNode);
                    }
                }

                return ((DesignerTheme[])designerThemes.ToArray(typeof(DesignerTheme)));
            }
 internal static void EnsureDesignerThemes(IServiceProvider serviceProvider, WorkflowTheme workflowTheme, TreeNode[] items)
 {
     foreach (TreeNode node in items)
     {
         System.Type tag = node.Tag as System.Type;
         if (tag != null)
         {
             System.Type designerBaseType = tag.FullName.Equals("System.Workflow.Activities.SequentialWorkflowActivity, System.Workflow.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", StringComparison.OrdinalIgnoreCase) ? typeof(IRootDesigner) : typeof(IDesigner);
             System.Type designerType = ActivityDesigner.GetDesignerType(serviceProvider, tag, designerBaseType);
             if (designerType != null)
             {
                 workflowTheme.GetTheme(designerType);
             }
         }
     }
 }