protected override void OnAddAction(Action <ElementAction> actionAdder, EntityToken entityToken, TreeNodeDynamicContext dynamicContext, DynamicValuesHelperReplaceContext dynamicValuesHelperReplaceContext) { string url = this.UrlDynamicValuesHelper.ReplaceValues(dynamicValuesHelperReplaceContext); this.External = url.Contains("//"); if (!External) { url = UrlUtils.ResolvePublicUrl(url); } CustomUrlActionNodeActionToken actionToken = new CustomUrlActionNodeActionToken( url, this.External, (this.External ? "externalview" : "documentview"), this.ViewLabelDynamicValuesHelper.ReplaceValues(dynamicValuesHelperReplaceContext), this.ViewToolTipDynamicValuesHelper.ReplaceValues(dynamicValuesHelperReplaceContext), this.Serialize(), this.PermissionTypes); ElementAction elementAction = new ElementAction(new ActionHandle(actionToken)) { VisualData = CreateActionVisualizedData(dynamicValuesHelperReplaceContext) }; actionAdder(elementAction); }
protected override void OnAddAction(Action<ElementAction> actionAdder, EntityToken entityToken, TreeNodeDynamicContext dynamicContext, DynamicValuesHelperReplaceContext dynamicValuesHelperReplaceContext) { string url = this.UrlDynamicValuesHelper.ReplaceValues(dynamicValuesHelperReplaceContext); this.External = url.Contains("://"); if(!External) { url = UrlUtils.ResolvePublicUrl(url); } CustomUrlActionNodeActionToken actionToken = new CustomUrlActionNodeActionToken( url, this.External, (this.External ? "externalview" : "documentview"), this.ViewLabelDynamicValuesHelper.ReplaceValues(dynamicValuesHelperReplaceContext), this.ViewToolTipDynamicValuesHelper.ReplaceValues(dynamicValuesHelperReplaceContext), this.Serialize(), this.PermissionTypes); ElementAction elementAction = new ElementAction(new ActionHandle(actionToken)) { VisualData = CreateActionVisualizedData(dynamicValuesHelperReplaceContext) }; actionAdder(elementAction); }
public FlowToken Execute(EntityToken entityToken, ActionToken actionToken, FlowControllerServicesContainer flowControllerServicesContainer) { CustomUrlActionNodeActionToken customUrlActionNodeActionToken = (CustomUrlActionNodeActionToken)actionToken; CustomUrlActionNode customUrlActionNode = (CustomUrlActionNode)ActionNode.Deserialize(customUrlActionNodeActionToken.SerializedActionNode); string currentConsoleId = flowControllerServicesContainer.GetService <IManagementConsoleMessageService>().CurrentConsoleId; switch (customUrlActionNode.ViewType) { case CustomUrlActionNodeViewType.DocumentView: { string viewId = Guid.NewGuid().ToString(); string serializedEntityToken = EntityTokenSerializer.Serialize(entityToken, true); OpenViewMessageQueueItem openViewMessageQueueItem = new OpenViewMessageQueueItem() { ViewId = viewId, EntityToken = serializedEntityToken, Label = customUrlActionNodeActionToken.ViewLabel, ToolTip = customUrlActionNodeActionToken.ViewToolTip, IconResourceHandle = customUrlActionNode.ViewIcon, Url = customUrlActionNodeActionToken.Url, UrlPostArguments = customUrlActionNode.PostParameters }; ConsoleMessageQueueFacade.Enqueue(openViewMessageQueueItem, currentConsoleId); BindEntityTokenToViewQueueItem bindEntityTokenToViewQueueItem = new BindEntityTokenToViewQueueItem() { ViewId = viewId, EntityToken = serializedEntityToken }; ConsoleMessageQueueFacade.Enqueue(bindEntityTokenToViewQueueItem, currentConsoleId); } break; case CustomUrlActionNodeViewType.ExternalView: { string viewId = Guid.NewGuid().ToString(); string serializedEntityToken = EntityTokenSerializer.Serialize(entityToken, true); OpenExternalViewQueueItem openExternalViewQueueItem = new OpenExternalViewQueueItem(entityToken) { ViewId = viewId, EntityToken = serializedEntityToken, Label = customUrlActionNodeActionToken.ViewLabel, ToolTip = customUrlActionNodeActionToken.ViewToolTip, IconResourceHandle = customUrlActionNode.ViewIcon, Url = customUrlActionNodeActionToken.Url, ViewType = customUrlActionNodeActionToken.ViewType, UrlPostArguments = customUrlActionNode.PostParameters }; ConsoleMessageQueueFacade.Enqueue(openExternalViewQueueItem, currentConsoleId); BindEntityTokenToViewQueueItem bindEntityTokenToViewQueueItem = new BindEntityTokenToViewQueueItem() { ViewId = viewId, EntityToken = serializedEntityToken }; ConsoleMessageQueueFacade.Enqueue(bindEntityTokenToViewQueueItem, currentConsoleId); } break; case CustomUrlActionNodeViewType.GenericView: { string viewId = Guid.NewGuid().ToString(); string serializedEntityToken = EntityTokenSerializer.Serialize(entityToken, true); OpenGenericViewQueueItem openGenericViewQueueItem = new OpenGenericViewQueueItem(entityToken) { ViewId = viewId, EntityToken = serializedEntityToken, Label = customUrlActionNodeActionToken.ViewLabel, ToolTip = customUrlActionNodeActionToken.ViewToolTip, IconResourceHandle = customUrlActionNode.ViewIcon, Url = customUrlActionNodeActionToken.Url, UrlPostArguments = customUrlActionNode.PostParameters }; ConsoleMessageQueueFacade.Enqueue(openGenericViewQueueItem, currentConsoleId); BindEntityTokenToViewQueueItem bindEntityTokenToViewQueueItem = new BindEntityTokenToViewQueueItem() { ViewId = viewId, EntityToken = serializedEntityToken }; ConsoleMessageQueueFacade.Enqueue(bindEntityTokenToViewQueueItem, currentConsoleId); } break; case CustomUrlActionNodeViewType.PageBrowser: Dictionary <string, string> arguments = new Dictionary <string, string>(); arguments.Add("URL", customUrlActionNodeActionToken.Url); OpenHandledViewMessageQueueItem openHandledViewMessageQueueItem = new OpenHandledViewMessageQueueItem( EntityTokenSerializer.Serialize(entityToken, true), "Composite.Management.Browser", arguments ); ConsoleMessageQueueFacade.Enqueue(openHandledViewMessageQueueItem, currentConsoleId); break; case CustomUrlActionNodeViewType.FileDownload: DownloadFileMessageQueueItem downloadFileMessageQueueItem = new DownloadFileMessageQueueItem(customUrlActionNodeActionToken.Url); ConsoleMessageQueueFacade.Enqueue(downloadFileMessageQueueItem, currentConsoleId); break; } return(null); }