コード例 #1
0
        private void finalizeCodeActivity_Finalize_ExecuteCode(object sender, EventArgs e)
        {
            IPageTypeDefaultPageContent defaultPageContent = this.GetBinding <IPageTypeDefaultPageContent>("DefaultPageContent");

            Dictionary <string, string> piggybag = PiggybagSerializer.Deserialize(this.ExtraPayload);

            DataEntityToken dataEntityToken = piggybag.GetParentEntityTokens().FindDataEntityToken(typeof(IPageType));
            IPageType       parentPageType  = (IPageType)dataEntityToken.Data;

            defaultPageContent.PageTypeId = parentPageType.Id;
            defaultPageContent.Content    = " ";

            defaultPageContent = DataFacade.AddNew <IPageTypeDefaultPageContent>(defaultPageContent);

            this.CloseCurrentView();
            this.RefreshCurrentEntityToken();

            if (!AnyTemplatesContainingPlaceholderId())
            {
                ShowMessage(C1Console.Events.DialogType.Message,
                            string.Format(RS.GetString("Composite.Plugins.PageTypeElementProvider", "PageType.AddPageTypeDefaultPageContentWorkflow.NonExistingPlaceholderId.Title"), defaultPageContent.PlaceHolderId),
                            string.Format(RS.GetString("Composite.Plugins.PageTypeElementProvider", "PageType.AddPageTypeDefaultPageContentWorkflow.NonExistingPlaceholderId.Message"), defaultPageContent.PlaceHolderId));
            }

            this.ExecuteWorklow(defaultPageContent.GetDataEntityToken(), WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTypeElementProvider.EditPageTypeDefaultPageContentWorkflow"));
        }
コード例 #2
0
        private void step5CodeActivity_RefreshTree_ExecuteCode(object sender, EventArgs e)
        {
            if (this.GetBinding <bool>("ReloadConsoleOnCompletion"))
            {
                ConsoleMessageQueueFacade.Enqueue(new RebootConsoleMessageQueueItem(), null);
            }

            if (this.GetBinding <bool>("FlushOnCompletion"))
            {
                GlobalEventSystemFacade.FlushTheSystem();
            }

            SpecificTreeRefresher specificTreeRefresher = this.CreateSpecificTreeRefresher();

            specificTreeRefresher.PostRefreshMesseges(new PackageElementProviderRootEntityToken());

            if (this.GetBinding <bool>("ReloadConsoleOnCompletion") == false)
            {
                PackageElementProviderAvailablePackagesItemEntityToken castedEntityToken = (PackageElementProviderAvailablePackagesItemEntityToken)this.EntityToken;

                InstalledPackageInformation installedPackage = PackageManager.GetInstalledPackages().FirstOrDefault(f => f.Id == castedEntityToken.PackageId);

                var installedPackageEntityToken = new PackageElementProviderInstalledPackageItemEntityToken(
                    installedPackage.Id,
                    installedPackage.GroupName,
                    installedPackage.IsLocalInstalled,
                    installedPackage.CanBeUninstalled);

                ExecuteWorklow(installedPackageEntityToken, WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PackageElementProvider.ViewInstalledPackageInfoWorkflow"));
            }
        }
コード例 #3
0
        private static ElementAction CreateFunctionTesterAction(string functionName = "")
        {
            WorkflowActionToken actionToken = new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Workflows.Plugins.Elements.ElementProviders.AllFunctionsElementProvider.FunctionTesterWorkflow"))
            {
                Payload = functionName
            };

            return(new ElementAction(new ActionHandle(actionToken))
            {
                VisualData = new ActionVisualizedData
                {
                    Label = StringResourceSystemFacade.GetString("Composite.Plugins.AllFunctionsElementProvider", "AllFunctionsElementProvider.FunctionTester.Label"),
                    ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.AllFunctionsElementProvider", "AllFunctionsElementProvider.FunctionTester.ToolTip"),
                    Icon = TestFunctionIcon,
                    Disabled = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType = ActionType.Other,
                        IsInFolder = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });
        }
 protected override IEnumerable <ElementAction> OnGetFolderActions()
 {
     return(new ElementAction[]
     {
         new ElementAction(new ActionHandle(
                               new WorkflowActionToken(
                                   WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.VisualFunctionProviderElementProvider.AddNewVisualFunctionWorkflow"),
                                   new PermissionType[] { PermissionType.Add }
                                   )))
         {
             VisualData = new ActionVisualizedData
             {
                 Label = StringResourceSystemFacade.GetString("Composite.Plugins.VisualFunction", "VisualFunctionElementProvider.AddNewLabel"),
                 ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.VisualFunction", "VisualFunctionElementProvider.AddNewToolTip"),
                 Icon = VisualFunctionProviderElementProvider.AddFunction,
                 Disabled = false,
                 ActionLocation = new ActionLocation
                 {
                     ActionType = ActionType.Add,
                     IsInFolder = false,
                     IsInToolbar = true,
                     ActionGroup = PrimaryActionGroup
                 }
             }
         }
     });
 }
コード例 #5
0
 protected override void OnAddAction(Action <ElementAction> actionAdder, EntityToken entityToken, TreeNodeDynamicContext dynamicContext, DynamicValuesHelperReplaceContext dynamicValuesHelperReplaceContext)
 {
     actionAdder(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.C1Console.Trees.Workflows.GenericDeleteDataWorkflow"), this.PermissionTypes)))
     {
         VisualData = CreateActionVisualizedData(dynamicValuesHelperReplaceContext)
     });
 }
コード例 #6
0
        /// <exclude />
        public static FlowToken ExecuteSecurityViolation(ActionToken actionToken, EntityToken entityToken, FlowControllerServicesContainer flowControllerServicesContainer)
        {
            EntityToken newEntityToken = new SecurityViolationWorkflowEntityToken();

            WorkflowActionToken newActionToken = new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.C1Console.Actions.Workflows.SecurityViolationWorkflow"));

            return(Execute(newEntityToken, newActionToken, flowControllerServicesContainer));
        }
コード例 #7
0
        private void AppendFolderManagementActions(string websiteFolderPath, IEnumerable <IFolderWhiteList> manageableFolderWhiteLists, IList <ElementAction> folderActions)
        {
            for (int i = 0; i < _manageableKeyNames.Count; i++)
            {
                string keyName   = _manageableKeyNames[i];
                string itemLabel = StringResourceSystemFacade.ParseString(_manageableKeyNameLabels[i]);

                ResourceHandle      icon                = null;
                string              label               = null;
                string              tooltip             = null;
                WorkflowActionToken workflowActionToken = null;

                ActionCheckedStatus checkedStatus = ActionCheckedStatus.Uncheckable;

                if (manageableFolderWhiteLists.Where(f => f.KeyName == keyName && f.TildeBasedPath == IFolderWhiteListExtensions.GetTildePath(websiteFolderPath)).Any())
                {
                    workflowActionToken = new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.WebsiteFileElementProvider.RemoveWebsiteFolderFromWhiteListWorkflow"), _changeWhiteListPermissionTypes);
                    label         = StringResourceSystemFacade.GetString("Composite.Plugins.WebsiteFileElementProvider", "RemoveFolderFromWhiteListTitle");
                    tooltip       = StringResourceSystemFacade.GetString("Composite.Plugins.WebsiteFileElementProvider", "RemoveFolderFromWhiteListToolTip");
                    icon          = WebsiteFileElementProvider.RemoveFolderFromWhiteList;
                    checkedStatus = ActionCheckedStatus.Checked;
                }
                else
                {
                    workflowActionToken = new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.WebsiteFileElementProvider.AddWebsiteFolderToWhiteListWorkflow"), _changeWhiteListPermissionTypes);
                    label         = StringResourceSystemFacade.GetString("Composite.Plugins.WebsiteFileElementProvider", "AddFolderToWhiteListTitle");
                    tooltip       = StringResourceSystemFacade.GetString("Composite.Plugins.WebsiteFileElementProvider", "AddFolderToWhiteListToolTip");
                    icon          = WebsiteFileElementProvider.AddFolderToWhiteList;
                    checkedStatus = ActionCheckedStatus.Unchecked;
                }

                label   = string.Format(label, itemLabel);
                tooltip = string.Format(tooltip, itemLabel);

                workflowActionToken.Payload = keyName;

                folderActions.Add(
                    new ElementAction(new ActionHandle(workflowActionToken))
                {
                    VisualData = new ActionVisualizedData
                    {
                        Label          = label,
                        ToolTip        = tooltip,
                        Icon           = icon,
                        Disabled       = false,
                        ActionLocation = new ActionLocation
                        {
                            ActionType  = ActionType.Other,
                            IsInFolder  = false,
                            IsInToolbar = false,
                            ActionGroup = PrimaryFolderToolsActionGroup
                        },
                        ActionCheckedStatus = checkedStatus
                    }
                });
            }
        }
コード例 #8
0
        internal void AddWorkflowAction(string workflowType, IEnumerable <PermissionType> permissionType, ActionVisualizedData visualizedData)
        {
            Type type = WorkflowFacade.GetWorkflowType(workflowType);

            this.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(type, permissionType)))
            {
                VisualData = visualizedData
            });
        }
コード例 #9
0
        public ActionToken GetActionToken(string actionTypeName, IData data)
        {
            switch (actionTypeName)
            {
            case GenericPublishProcessControllerActionTypeNames.UndoUnpublishedChanges:
                return(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageElementProvider.UndoUnpublishedChangesWorkflow"), PageElementProvider.EditPermissionTypes));

            default:
                return(null);
            }
        }
コード例 #10
0
        /// <exclude />
        public static FlowToken ExecuteEntityTokenLocked(ActionToken lockedActionToken, EntityToken lockedEntityToken, FlowControllerServicesContainer flowControllerServicesContainer)
        {
            EntityToken entityToken = new EntityTokenLockedEntityToken(
                ActionLockingFacade.LockedBy(lockedEntityToken),
                ActionTokenSerializer.Serialize(lockedActionToken),
                EntityTokenSerializer.Serialize(lockedEntityToken)
                );

            WorkflowActionToken actionToken = new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.C1Console.Actions.Workflows.EntityTokenLockedWorkflow"));

            return(Execute(entityToken, actionToken, flowControllerServicesContainer));
        }
コード例 #11
0
        private void finalizeCodeActivity_SavePageType_ExecuteCode(object sender, EventArgs e)
        {
            IPageType pageType = this.GetBinding <IPageType>("NewPageType");

            pageType = DataFacade.AddNew <IPageType>(pageType);

            this.RefreshCurrentEntityToken();

            this.CloseCurrentView();
            this.RefreshCurrentEntityToken();
            this.ExecuteWorklow(pageType.GetDataEntityToken(), WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTypeElementProvider.EditPageTypeWorkflow"));
        }
コード例 #12
0
        /// <exclude />
        protected override void OnAddAction(Action <ElementAction> actionAdder, EntityToken entityToken, TreeNodeDynamicContext dynamicContext, DynamicValuesHelperReplaceContext dynamicValuesHelperReplaceContext)
        {
            var payload = new StringBuilder();

            this.Serialize(payload);

            if (this.ParentIdEntries.Count > 0)
            {
                List <EntityToken> entityTokens = dynamicContext.Piggybag.GetParentEntityTokens().ToList();
                entityTokens.Reverse();

                entityTokens.Add(dynamicContext.CurrentEntityToken);
                entityTokens.Add(entityToken);

                entityTokens.Reverse();

                foreach (ParentIdEntry parentIdEntry in this.ParentIdEntries)
                {
                    DataEntityToken dataEntityToken = entityTokens.FindDataEntityToken(parentIdEntry.TargetInterface);
                    if (dataEntityToken == null)
                    {
                        continue;
                    }

                    IData data = dataEntityToken.Data;

                    object keyValue = parentIdEntry.TargetPropertyInfo.GetValue(data, null);

                    StringConversionServices.SerializeKeyValuePair(payload, parentIdEntry.SourcePropertyName, keyValue);
                }
            }

            StringConversionServices.SerializeKeyValuePair(payload, "_InterfaceType_", InterfaceType);
            StringConversionServices.SerializeKeyValuePair(payload, "_IconResourceName_", Icon.ResourceName);

            if (!String.IsNullOrEmpty(CustomFormMarkupPath))
            {
                StringConversionServices.SerializeKeyValuePair(payload, "_CustomFormMarkupPath_", CustomFormMarkupPath);
            }

            actionAdder(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.C1Console.Trees.Workflows.GenericAddDataWorkflow"), this.PermissionTypes)
            {
                Payload = payload.ToString(),
                DoIgnoreEntityTokenLocking = true,
                ExtraPayload = PiggybagSerializer.Serialize(dynamicContext.Piggybag.PreparePiggybag(dynamicContext.CurrentTreeNode, dynamicContext.CurrentEntityToken))
            }))
            {
                VisualData = CreateActionVisualizedData(dynamicValuesHelperReplaceContext)
            });
        }
コード例 #13
0
        /// <exclude />
        protected override IEnumerable <ElementAction> OnGetFunctionActions(IFunctionTreeBuilderLeafInfo function)
        {
            var editWorkflow   = WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.RazorFunctionProviderElementProvider.EditRazorFunctionWorkflow");
            var deleteWorkflow = WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.RazorFunctionProviderElementProvider.DeleteRazorFunctionWorkflow");

            return(new []
            {
                new ElementAction(new ActionHandle(
                                      new WorkflowActionToken(
                                          editWorkflow, new [] { PermissionType.Edit }
                                          )))
                {
                    VisualData = new ActionVisualizedData {
                        Label = GetText("EditRazorFunction.Label"),
                        ToolTip = GetText("EditRazorFunction.ToolTip"),
                        Icon = EditFunctionIcon,
                        Disabled = false,
                        ActionLocation = new ActionLocation {
                            ActionType = ActionType.Edit,
                            IsInFolder = false,
                            IsInToolbar = true,
                            ActionGroup = PrimaryActionGroup
                        }
                    }
                },

                new ElementAction(new ActionHandle(
                                      new WorkflowActionToken(
                                          deleteWorkflow, new [] { PermissionType.Delete }
                                          )
                {
                    Payload = GetContext().ProviderName
                }))
                {
                    VisualData = new ActionVisualizedData {
                        Label = GetText("DeleteRazorFunction.Label"),
                        ToolTip = GetText("DeleteRazorFunction.ToolTip"),
                        Icon = DeleteFunctionIcon,
                        Disabled = false,
                        ActionLocation = new ActionLocation {
                            ActionType = ActionType.Delete,
                            IsInFolder = false,
                            IsInToolbar = true,
                            ActionGroup = PrimaryActionGroup
                        }
                    }
                }
            });
        }
コード例 #14
0
        public override IEnumerable <ElementAction> GetActions()
        {
            var result = new List <ElementAction>();

            Type workflowType = WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateElementProvider.EditRazorPageTemplateWorkflow");

            result.Add(new ElementAction(new ActionHandle(new WorkflowActionToken(
                                                              workflowType,
                                                              _editWebsiteFilePermissionTypes)))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = GetText("EditRazorTemplateAction.Label"),
                    ToolTip        = GetText("EditRazorTemplateAction.ToolTip"),
                    Icon           = EditTemplateIcon,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Edit,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            workflowType = WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateElementProvider.DeletePageTemplateWorkflow");

            result.Add(new ElementAction(new ActionHandle(new WorkflowActionToken(workflowType, new[] { PermissionType.Delete })))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = GetText("DeleteRazorPageTemplateAction.Label"),
                    ToolTip        = GetText("DeleteRazorPageTemplateAction.ToolTip"),
                    Icon           = DeleteTemplateIcon,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Delete,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            return(result);
        }
        /// <exclude />
        protected override IEnumerable <ElementAction> OnGetFunctionActions(IFunctionTreeBuilderLeafInfo function)
        {
            return(new ElementAction[]
            {
                new ElementAction(new ActionHandle(
                                      new WorkflowActionToken(
                                          WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.XsltBasedFunctionProviderElementProvider.EditXsltFunctionWorkflow"),
                                          new PermissionType[] { PermissionType.Edit }
                                          )))
                {
                    VisualData = new ActionVisualizedData {
                        Label = StringResourceSystemFacade.GetString("Composite.Plugins.XsltBasedFunction", "XsltBasedFunctionProviderElementProvider.Edit"),
                        ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.XsltBasedFunction", "XsltBasedFunctionProviderElementProvider.EditToolTip"),
                        Icon = XsltBasedFunctionProviderElementProvider.EditFunction,
                        Disabled = false,
                        ActionLocation = new ActionLocation {
                            ActionType = ActionType.Edit,
                            IsInFolder = false,
                            IsInToolbar = true,
                            ActionGroup = PrimaryActionGroup
                        }
                    }
                },

                new ElementAction(new ActionHandle(
                                      new WorkflowActionToken(
                                          WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.XsltBasedFunctionProviderElementProvider.DeleteXsltFunctionWorkflow"),
                                          new PermissionType[] { PermissionType.Delete }
                                          )
                {
                    Payload = GetContext().ProviderName
                }))
                {
                    VisualData = new ActionVisualizedData {
                        Label = StringResourceSystemFacade.GetString("Composite.Plugins.XsltBasedFunction", "XsltBasedFunctionProviderElementProvider.Delete"),
                        ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.XsltBasedFunction", "XsltBasedFunctionProviderElementProvider.DeleteToolTip"),
                        Icon = XsltBasedFunctionProviderElementProvider.DeleteFunction,
                        Disabled = false,
                        ActionLocation = new ActionLocation {
                            ActionType = ActionType.Delete,
                            IsInFolder = false,
                            IsInToolbar = true,
                            ActionGroup = PrimaryActionGroup
                        }
                    }
                }
            });
        }
コード例 #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string pageIdString = this.Request.QueryString["pageId"];

            if (pageIdString == null)
            {
                throw new InvalidOperationException();
            }

            Guid pageId = new Guid(pageIdString);

            //var editWorkflowAttribute = teaser.DataSourceId.InterfaceType.GetCustomAttributes(true).OfType<EditWorkflowAttribute>().FirstOrDefault();
            //if (editWorkflowAttribute == null)
            //{
            //    editLink.Link = string.Empty;
            //    return editLink;
            //}


            var pagex        = PageManager.GetPageById(pageId);
            var _entityToken = new PageDataEntityToken(pagex);

            var serializedEntityToken = EntityTokenSerializer.Serialize(_entityToken, true);

            var editActionToken = new WorkflowActionToken(typeof(EditDataWorkflow));

            var token = new WorkflowActionToken(WorkflowFacade.GetWorkflowType(typeof(EditPageWorkflow).FullName));


            var serializedActionToken = ActionTokenSerializer.Serialize(token, true);

            //var m = ActionTokenSerializer.Deserialize(k);
            var x = ActionTokenSerializer.Deserialize(serializedActionToken);

            providerName = pagex.DataSourceId.ProviderName;
            entityToken  = serializedEntityToken;
            actionToken  = serializedActionToken;
            piggybag     = string.Empty;
            piggybagHash = HashSigner.GetSignedHash(string.Empty).Serialize();

            using (new DataScope(DataScopeIdentifier.Administrated, UserSettings.ActiveLocaleCultureInfo))
            {
                IPage page = PageManager.GetPageById(pageId);

                this.MyPlaceHolder.Controls.Add(new LiteralControl("Title: " + page.Title + "<br />"));
            }
        }
        public IEnumerable <Element> GetRoots(SearchToken seachToken)
        {
            var connections = DataFacade.GetData <ISqlConnection>();

            List <Element> elements    = new List <Element>();
            bool           hasChildren = connections.Any();

            Element element = new Element(_context.CreateElementHandle(new SqlFunctionProviderRootEntityToken(_context.ProviderName, _context.ProviderName)))
            {
                VisualData = new ElementVisualizedData()
                {
                    Label       = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.RootLabel"),
                    ToolTip     = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.RootLabelToolTip"),
                    HasChildren = hasChildren,
                    Icon        = hasChildren ? this.FolderIcon : this.EmptyFolderIcon,
                    OpenedIcon  = OpenFolderIcon
                }
            };

            element.AddAction(
                new ElementAction(new ActionHandle(
                                      new WorkflowActionToken(
                                          WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.SqlFunctionElementProvider.AddNewSqlConnectionWorkflow"),
                                          new PermissionType[] { PermissionType.Add }
                                          )))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.AddConnection"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.AddConnectionToolTip"),
                    Icon           = AddConnection,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Add,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            elements.Add(element);

            return(elements);
        }
コード例 #18
0
        }                                                   // Requried


        protected override void OnAddAction(Action <ElementAction> actionAdder, EntityToken entityToken, TreeNodeDynamicContext dynamicContext, DynamicValuesHelperReplaceContext dynamicValuesHelperReplaceContext)
        {
            WorkflowActionToken actionToken = new WorkflowActionToken(
                WorkflowFacade.GetWorkflowType(TypeManager.SerializeType(this.WorkflowType)),
                this.PermissionTypes)
            {
                Payload      = this.Serialize(),
                ExtraPayload = PiggybagSerializer.Serialize(dynamicContext.Piggybag.PreparePiggybag(dynamicContext.CurrentTreeNode, dynamicContext.CurrentEntityToken)),
                DoIgnoreEntityTokenLocking = true
            };


            actionAdder(new ElementAction(new ActionHandle(actionToken))
            {
                VisualData = CreateActionVisualizedData(dynamicValuesHelperReplaceContext)
            });
        }
コード例 #19
0
        public override IEnumerable <ElementAction> GetActions()
        {
            var result = new List <ElementAction>();

            Type type = WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateElementProvider.EditXmlPageTemplateWorkflow");

            result.Add(new ElementAction(new ActionHandle(new WorkflowActionToken(type, new[] { PermissionType.Edit })))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.EditXmlTemplate"),
                    ToolTip        = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.EditXmlTemplateToolTip"),
                    Icon           = PageTemplateElementProvider.EditTemplate,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Edit,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            type = WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateElementProvider.DeletePageTemplateWorkflow");

            result.Add(new ElementAction(new ActionHandle(new WorkflowActionToken(type, new[] { PermissionType.Delete })))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.DeleteTemplate"),
                    ToolTip        = SR.GetString("Composite.Plugins.PageTemplateElementProvider", "PageTemplateElementProvider.DeleteTemplateToolTip"),
                    Icon           = DeleteTemplate,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Delete,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            return(result);
        }
コード例 #20
0
        /// <exclude />
        protected override IEnumerable <ElementAction> OnGetFolderActions()
        {
            Type workflow = WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.RazorFunctionProviderElementProvider.AddNewRazorFunctionWorkflow");

            return(new[] { new ElementAction(new ActionHandle(new WorkflowActionToken(workflow, new [] { PermissionType.Add })))
                           {
                               VisualData = new ActionVisualizedData {
                                   Label = GetText("AddNewRazorFunction.Label"),
                                   ToolTip = GetText("AddNewRazorFunction.ToolTip"),
                                   Icon = AddFunctionIcon,
                                   Disabled = false,
                                   ActionLocation = new ActionLocation {
                                       ActionType = ActionType.Edit,
                                       IsInFolder = false,
                                       IsInToolbar = true,
                                       ActionGroup = PrimaryActionGroup
                                   }
                               }
                           } });
        }
コード例 #21
0
        }                                                           // Optional


        /// <exclude />
        protected override void OnAddAction(Action <ElementAction> actionAdder, EntityToken entityToken, TreeNodeDynamicContext dynamicContext, DynamicValuesHelperReplaceContext dynamicValuesHelperReplaceContext)
        {
            StringBuilder payload = new StringBuilder();

            this.Serialize(payload);

            StringConversionServices.SerializeKeyValuePair(payload, "_IconResourceName_", Icon.ResourceName);

            if (!String.IsNullOrEmpty(CustomFormMarkupPath))
            {
                StringConversionServices.SerializeKeyValuePair(payload, "_CustomFormMarkupPath_", CustomFormMarkupPath);
            }

            actionAdder(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.C1Console.Trees.Workflows.GenericEditDataWorkflow"), this.PermissionTypes)
            {
                Payload = payload.ToString()
            }))
            {
                VisualData = CreateActionVisualizedData(dynamicValuesHelperReplaceContext)
            });
        }
        private Element CreateFolderElement(NamespaceTreeBuilderFolder node, string connectionId)
        {
            bool hasChildren = (node.SubFolders.Count != 0) || (node.Leafs.Count != 0);

            var element = new Element(_context.CreateElementHandle(new SqlFunctionProviderFolderEntityToken(StringExtensionMethods.CreateNamespace(node.Namespace, node.Name, '.'), _context.ProviderName, connectionId)))
            {
                VisualData = new ElementVisualizedData
                {
                    Label       = node.Name,
                    ToolTip     = node.Name,
                    HasChildren = (node.SubFolders.Count != 0) || (node.Leafs.Count != 0),
                    Icon        = hasChildren ? this.FolderIcon : this.EmptyFolderIcon,
                    OpenedIcon  = this.OpenFolderIcon
                }
            };

            element.AddAction(new ElementAction(new ActionHandle(
                                                    new WorkflowActionToken(
                                                        WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.SqlFunctionElementProvider.AddNewSqlFunctionProviderWorkflow"),
                                                        new PermissionType[] { PermissionType.Add }
                                                        )))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.AddQuery"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.AddQueryToolTip"),
                    Icon           = SqlFunctionElementProvider.AddFunction,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Edit,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            return(element);
        }
コード例 #23
0
        /// <exclude />
        protected override void OnAddAction(Action <ElementAction> actionAdder, EntityToken entityToken, TreeNodeDynamicContext dynamicContext, DynamicValuesHelperReplaceContext dynamicValuesHelperReplaceContext)
        {
            StringBuilder payload = new StringBuilder();

            StringConversionServices.SerializeKeyValuePair(payload, "TreeId", this.OwnerNode.Tree.TreeId);
            StringConversionServices.SerializeKeyValuePair(payload, "ActionId", this.Id);

            WorkflowActionToken actionToken = new WorkflowActionToken(
                WorkflowFacade.GetWorkflowType("Composite.C1Console.Trees.Workflows.ReportFunctionActionWorkflow"),
                this.PermissionTypes)
            {
                Payload      = this.Serialize(),
                ExtraPayload = PiggybagSerializer.Serialize(dynamicContext.Piggybag.PreparePiggybag(dynamicContext.CurrentTreeNode, dynamicContext.CurrentEntityToken)),
                DoIgnoreEntityTokenLocking = true
            };


            actionAdder(new ElementAction(new ActionHandle(actionToken))
            {
                VisualData = CreateActionVisualizedData(dynamicValuesHelperReplaceContext)
            });
        }
コード例 #24
0
        public IEnumerable <Element> GetRoots(SearchToken seachToken)
        {
            Element element = new Element(_context.CreateElementHandle(new LocalizationElementProviderRootEntityToken()));

            element.VisualData = new ElementVisualizedData
            {
                Label       = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "ElementProvider.RootFolderLabel"),
                ToolTip     = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "ElementProvider.RootFolderToolTip"),
                HasChildren = true,
                Icon        = RootClosedIcon,
                OpenedIcon  = RootOpenedIcon
            };


            element.AddAction(new ElementAction(new ActionHandle(
                                                    new WorkflowActionToken(
                                                        WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.LocalizationElementProvider.AddSystemLocaleWorkflow"),
                                                        new PermissionType[] { PermissionType.Administrate }
                                                        )))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "AddSystemLocaleWorkflow.AddElementActionLabel"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.LocalizationElementProvider", "AddSystemLocaleWorkflow.AddElementActionToolTip"),
                    Icon           = AddSystemLocaleIcon,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Add,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            yield return(element);
        }
コード例 #25
0
        /// <exclude />
        public IEnumerable <Element> GetElements(EntityToken parentEntityToken, TreeNodeDynamicContext dynamicContext)
        {
            IEnumerable <Element> elements = OnGetElements(parentEntityToken, dynamicContext);

            var localizeDataWorkflow = WorkflowFacade.GetWorkflowType("Composite.C1Console.Trees.Workflows.LocalizeDataWorkflow");

            foreach (Element element in elements)
            {
                bool isForeignLocaleDataItem = element.Actions
                                               .Any(x => x.ActionHandle.ActionToken is WorkflowActionToken &&
                                                    ((WorkflowActionToken)x.ActionHandle.ActionToken).WorkflowType == localizeDataWorkflow);

                if (!isForeignLocaleDataItem)
                {
                    foreach (ActionNode actionNode in this.ActionNodes)
                    {
                        actionNode.AddAction(element.AddAction, element.ElementHandle.EntityToken, dynamicContext);
                    }
                }

                yield return(element);
            }
        }
コード例 #26
0
 public override IEnumerable <C1Console.Elements.ElementAction> GetActions()
 {
     return(new[] {
         new ElementAction(new ActionHandle(new WorkflowActionToken(
                                                WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageTemplateElementProvider.EditMasterPageWorkflow"),
                                                _editWebsiteFilePermissionTypes)))
         {
             VisualData = new ActionVisualizedData
             {
                 Label = GetText("EditMasterPageAction.Label"),
                 ToolTip = GetText("EditMasterPageAction.ToolTip"),
                 Icon = EditTemplateIcon,
                 Disabled = false,
                 ActionLocation = new ActionLocation
                 {
                     ActionType = ActionType.Edit,
                     IsInFolder = false,
                     IsInToolbar = true,
                     ActionGroup = PrimaryFileActionGroup
                 }
             }
         }
     });
 }
コード例 #27
0
ファイル: PageElementProvider.cs プロジェクト: wwl2013/C1-CMS
        private List <Element> GetElements(List <KeyValuePair <PageLocaleState, IPage> > pages, bool rootPages)
        {
            //ElementDragAndDropInfo dragAndDropInfo = new ElementDragAndDropInfo(typeof(IPage));
            //dragAndDropInfo.AddDropType(typeof(IPage));
            //dragAndDropInfo.SupportsIndexedPosition = true;



            string editPageLabel       = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.EditPage");
            string editPageToolTip     = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.EditPageToolTip");
            string localizePageLabel   = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.LocalizePage");
            string localizePageToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.LocalizePageToolTip");
            string addNewPageLabel     = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.AddSubPage");
            string addNewPageToolTip   = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.AddSubPageToolTip");
            string deletePageLabel     = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.Delete");
            string deletePageToolTip   = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.DeleteToolTip");

            string urlMappingName = null;

            if (UserSettings.ForeignLocaleCultureInfo != null)
            {
                urlMappingName = DataLocalizationFacade.GetCultureTitle(UserSettings.ForeignLocaleCultureInfo);
            }

            var elements = new Element[pages.Count];

            ParallelFacade.For("PageElementProvider. Getting elements", 0, pages.Count, i =>
            {
                var kvp    = pages[i];
                IPage page = kvp.Value;

                EntityToken entityToken = page.GetDataEntityToken();

                var dragAndDropInfo = new ElementDragAndDropInfo(typeof(IPage));
                dragAndDropInfo.AddDropType(typeof(IPage));
                dragAndDropInfo.SupportsIndexedPosition = true;

                var element = new Element(_context.CreateElementHandle(entityToken), MakeVisualData(page, kvp.Key, urlMappingName, rootPages), dragAndDropInfo);

                element.PropertyBag.Add("Uri", "~/page({0})".FormatWith(page.Id));
                element.PropertyBag.Add("ElementType", "application/x-composite-page");
                element.PropertyBag.Add("DataId", page.Id.ToString());

                if (kvp.Key == PageLocaleState.Own)
                {
                    // Normal actions
                    element.AddAction(new ElementAction(new ActionHandle(new ProxyDataActionToken(ActionIdentifier.Edit, EditPermissionTypes)))
                    {
                        VisualData = new ActionVisualizedData
                        {
                            Label          = editPageLabel,
                            ToolTip        = editPageToolTip,
                            Icon           = PageElementProvider.EditPage,
                            Disabled       = false,
                            ActionLocation = new ActionLocation
                            {
                                ActionType  = ActionType.Edit,
                                IsInFolder  = false,
                                IsInToolbar = true,
                                ActionGroup = PrimaryActionGroup
                            }
                        }
                    });

                    element.AddAction(new ElementAction(new ActionHandle(new ProxyDataActionToken(ActionIdentifier.Add, AddPermissionTypes)))
                    {
                        VisualData = new ActionVisualizedData
                        {
                            Label          = addNewPageLabel,
                            ToolTip        = addNewPageToolTip,
                            Icon           = PageElementProvider.AddPage,
                            Disabled       = false,
                            ActionLocation = new ActionLocation
                            {
                                ActionType  = ActionType.Add,
                                IsInFolder  = false,
                                IsInToolbar = true,
                                ActionGroup = PrimaryActionGroup
                            }
                        }
                    });

                    element.AddAction(new ElementAction(new ActionHandle(new ProxyDataActionToken(ActionIdentifier.Delete, DeletePermissionTypes)))
                    {
                        VisualData = new ActionVisualizedData
                        {
                            Label          = deletePageLabel,
                            ToolTip        = deletePageToolTip,
                            Icon           = DeletePage,
                            Disabled       = false,
                            ActionLocation = new ActionLocation
                            {
                                ActionType  = ActionType.Delete,
                                IsInFolder  = false,
                                IsInToolbar = true,
                                ActionGroup = PrimaryActionGroup
                            }
                        }
                    });

                    _pageAssociatedHelper.AttachElementActions(element, page);
                }
                else if (kvp.Key == PageLocaleState.ForeignActive)
                {
                    // Localized actions
                    bool addAction = false;

                    Guid parentId = page.GetParentId();
                    if (parentId == Guid.Empty)
                    {
                        addAction = true;
                    }
                    else
                    {
                        using (new DataScope(DataScopeIdentifier.Administrated, UserSettings.ActiveLocaleCultureInfo))
                        {
                            bool exists = DataFacade.GetData <IPage>(f => f.Id == parentId).Any();
                            if (exists)
                            {
                                addAction = true;
                            }
                        }
                    }


                    if (addAction)
                    {
                        element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageElementProvider.LocalizePageWorkflow"), LocalizePermissionTypes)))
                        {
                            VisualData = new ActionVisualizedData
                            {
                                Label          = localizePageLabel,
                                ToolTip        = localizePageToolTip,
                                Icon           = PageElementProvider.LocalizePage,
                                Disabled       = false,
                                ActionLocation = new ActionLocation
                                {
                                    ActionType  = ActionType.Edit,
                                    IsInFolder  = false,
                                    IsInToolbar = true,
                                    ActionGroup = PrimaryActionGroup
                                }
                            }
                        });
                    }
                }

                elements[i] = element;
            });

            return(new List <Element>(elements));
        }
        private List <Element> GetConnectionElements()
        {
            var connections = DataFacade.GetData <ISqlConnection>();
            var queries     = DataFacade.GetData <ISqlFunctionInfo>();

            List <Element> elements = new List <Element>();

            foreach (ISqlConnection connection in connections)
            {
                int  queryCount  = queries.Where(x => x.ConnectionId == connection.Id).Count();
                bool hasChildren = queryCount > 0;

                Element element = new Element(_context.CreateElementHandle(connection.GetDataEntityToken()))
                {
                    VisualData = new ElementVisualizedData()
                    {
                        Label       = connection.Name,
                        ToolTip     = connection.EncryptedConnectionString.Decrypt(),
                        HasChildren = hasChildren,
                        Icon        = SqlFunctionElementProvider.Connection,
                        OpenedIcon  = SqlFunctionElementProvider.Connection
                    }
                };
                elements.Add(element);

                element.AddAction(
                    new ElementAction(new ActionHandle(
                                          new WorkflowActionToken(
                                              WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.SqlFunctionElementProvider.EditSqlConnectionWorkflow"),
                                              new PermissionType[] { PermissionType.Edit }
                                              )))
                {
                    VisualData = new ActionVisualizedData
                    {
                        Label          = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.EditConnection"),
                        ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.EditConnectionToolTip"),
                        Icon           = EditConnection,
                        Disabled       = false,
                        ActionLocation = new ActionLocation
                        {
                            ActionType  = ActionType.Edit,
                            IsInFolder  = false,
                            IsInToolbar = true,
                            ActionGroup = PrimaryActionGroup
                        }
                    }
                });

                element.AddAction(
                    new ElementAction(new ActionHandle(
                                          new WorkflowActionToken(
                                              WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.SqlFunctionElementProvider.DeleteSqlConnectionWorkflow"),
                                              new PermissionType[] { PermissionType.Delete }
                                              )))
                {
                    VisualData = new ActionVisualizedData
                    {
                        Label          = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.DeleteConnection"),
                        ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.DeleteConnectionToolTip"),
                        Icon           = DeleteConnection,
                        Disabled       = false,
                        ActionLocation = new ActionLocation
                        {
                            ActionType  = ActionType.Delete,
                            IsInFolder  = false,
                            IsInToolbar = true,
                            ActionGroup = PrimaryActionGroup
                        }
                    }
                });

                element.AddAction(
                    new ElementAction(new ActionHandle(
                                          new WorkflowActionToken(
                                              WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.SqlFunctionElementProvider.AddNewSqlFunctionProviderWorkflow"),
                                              new PermissionType[] { PermissionType.Add }
                                              )))
                {
                    VisualData = new ActionVisualizedData
                    {
                        Label          = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.AddQuery"),
                        ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.AddQueryToolTip"),
                        Icon           = AddConnection,
                        Disabled       = false,
                        ActionLocation = new ActionLocation
                        {
                            ActionType  = ActionType.Add,
                            IsInFolder  = false,
                            IsInToolbar = true,
                            ActionGroup = PrimaryActionGroup
                        }
                    }
                });
            }

            return(elements);
        }
コード例 #29
0
ファイル: PageElementProvider.cs プロジェクト: wwl2013/C1-CMS
        public IEnumerable <Element> GetRoots(SearchToken searchToken)
        {
            int pages;

            using (new DataScope(DataScopeIdentifier.Administrated))
            {
                pages = PageServices.GetChildrenCount(Guid.Empty);
            }

            EntityToken entityToken = new PageElementProviderEntityToken(_context.ProviderName);

            var dragAndDropInfo = new ElementDragAndDropInfo();

            dragAndDropInfo.AddDropType(typeof(IPage));
            dragAndDropInfo.SupportsIndexedPosition = true;

            var element = new Element(_context.CreateElementHandle(entityToken), dragAndDropInfo)
            {
                VisualData = new ElementVisualizedData
                {
                    Label       = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.RootLabel"),
                    ToolTip     = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.RootLabelToolTip"),
                    HasChildren = pages != 0,
                    Icon        = PageElementProvider.RootClosed,
                    OpenedIcon  = PageElementProvider.RootOpen
                }
            };

            element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.PageElementProvider.AddNewPageWorkflow"), AddWebsitePermissionTypes)
            {
                DoIgnoreEntityTokenLocking = true
            }))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.AddPageAtRoot"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.AddPageAtRootToolTip"),
                    Icon           = PageElementProvider.AddPage,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Add,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });


            element.AddAction(new ElementAction(new ActionHandle(new ViewUnpublishedItemsActionToken()))
            {
                VisualData = new ActionVisualizedData
                {
                    //Label = "List unpublished Pages and Folder Data",
                    //ToolTip = "Get an overview of pages and page folder data that haven't been published yet.",
                    Label          = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.ViewUnpublishedItems"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.ViewUnpublishedItemsToolTip"),
                    Icon           = PageElementProvider.ListUnpublishedItems,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Other,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = ViewActionGroup
                    }
                }
            });

            element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.C1Console.Elements.ElementProviderHelpers.AssociatedDataElementProviderHelper.AddMetaDataWorkflow"), AssociatedDataElementProviderHelper <IPage> .AddAssociatedTypePermissionTypes)
            {
                DoIgnoreEntityTokenLocking = true
            }))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataTypeLabel"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.AddMetaDataTypeToolTip"),
                    Icon           = AddDataAssociationTypeIcon,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Add,
                        IsInFolder  = false,
                        IsInToolbar = false,
                        ActionGroup = MetaDataAppendedActionGroup
                    }
                }
            });

            element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.C1Console.Elements.ElementProviderHelpers.AssociatedDataElementProviderHelper.EditMetaDataWorkflow"), AssociatedDataElementProviderHelper <IPage> .EditAssociatedTypePermissionTypes)))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.EditMetaDataTypeLabel"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.EditMetaDataTypeToolTip"),
                    Icon           = EditDataAssociationTypeIcon,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Edit,
                        IsInFolder  = false,
                        IsInToolbar = false,
                        ActionGroup = MetaDataAppendedActionGroup
                    }
                }
            });

            element.AddAction(new ElementAction(new ActionHandle(new WorkflowActionToken(WorkflowFacade.GetWorkflowType("Composite.C1Console.Elements.ElementProviderHelpers.AssociatedDataElementProviderHelper.DeleteMetaDataWorkflow"), AssociatedDataElementProviderHelper <IPage> .RemoveAssociatedTypePermissionTypes)))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.RemoveMetaDataTypeLabel"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Management", "AssociatedDataElementProviderHelper.RemoveMetaDataTypeToolTip"),
                    Icon           = RemoveDataAssociationTypeIcon,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Delete,
                        IsInFolder  = false,
                        IsInToolbar = false,
                        ActionGroup = MetaDataAppendedActionGroup
                    }
                }
            });

            // Creates a problem for the front-end "toolbar caching" mechanism - dont re-introduce this right befroe a release
            // Reason: ActionTokin is always unique for a page, making the ActionKey (hash) unique
            //if (RuntimeInformation.IsDebugBuild)
            //{
            //    element.AddAction(new ElementAction(new ActionHandle(new DisplayLocalOrderingActionToken(Guid.Empty)))
            //    {
            //        VisualData = new ActionVisualizedData
            //        {
            //            Label = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.DisplayLocalOrderingLabel"),
            //            ToolTip = StringResourceSystemFacade.GetString("Composite.Plugins.PageElementProvider", "PageElementProvider.DisplayLocalOrderingToolTip"),
            //            Icon = CommonElementIcons.Nodes,
            //            Disabled = false,
            //            ActionLocation = new ActionLocation
            //            {
            //                ActionType = ActionType.DeveloperMode,
            //                IsInFolder = false,
            //                IsInToolbar = false,
            //                ActionGroup = AppendedActionGroup
            //            }
            //        }
            //    });
            //}

            yield return(element);
        }
        private Element CreateXmlFunctionInfoElement(INamespaceTreeBuilderLeafInfo leafInfo, string connectionId)
        {
            var element = new Element(_context.CreateElementHandle(((SqlNamespaceTreeBuilderLeafInfo)leafInfo).EntityToken))
            {
                VisualData = new ElementVisualizedData
                {
                    Label       = leafInfo.Name,
                    ToolTip     = leafInfo.Name,
                    HasChildren = false,
                    Icon        = SqlFunctionElementProvider.Function
                }
            };

            element.AddAction(
                new ElementAction(new ActionHandle(
                                      new WorkflowActionToken(
                                          WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.SqlFunctionElementProvider.EditSqlFunctionProviderWorkflow"),
                                          new PermissionType[] { PermissionType.Edit }
                                          )))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.EditQuery"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.EditQueryToolTip"),
                    Icon           = SqlFunctionElementProvider.EditFunction,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Edit,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            element.AddAction(
                new ElementAction(new ActionHandle(
                                      new WorkflowActionToken(
                                          WorkflowFacade.GetWorkflowType("Composite.Plugins.Elements.ElementProviders.SqlFunctionElementProvider.DeleteSqlFunctionProviderWorkflow"),
                                          new PermissionType[] { PermissionType.Delete }
                                          )))
            {
                VisualData = new ActionVisualizedData
                {
                    Label          = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.DeleteQuery"),
                    ToolTip        = StringResourceSystemFacade.GetString("Composite.Plugins.SqlFunction", "SqlFunctionElementProvider.DeleteQueryToolTip"),
                    Icon           = SqlFunctionElementProvider.DeleteFunction,
                    Disabled       = false,
                    ActionLocation = new ActionLocation
                    {
                        ActionType  = ActionType.Edit,
                        IsInFolder  = false,
                        IsInToolbar = true,
                        ActionGroup = PrimaryActionGroup
                    }
                }
            });

            return(element);
        }