public void Process(WorkflowPipelineArgs args)
        {
            Assert.ArgumentNotNull(args, "args");
            ProcessorItem processorItem = args.ProcessorItem;

            if (processorItem != null)
            {
                Item innerItem = processorItem.InnerItem;
                Item dataItem  = args.DataItem;
                if (!string.IsNullOrEmpty(innerItem[Templates.ScriptWorkflowAction.Fields.ScriptBody]))
                {
                    Item item = innerItem.Database.GetItem(new ID(innerItem[Templates.ScriptWorkflowAction.Fields.ScriptBody]));
                    if (!ItemExtensions.IsPowerShellScript(item))
                    {
                        Context.ClientPage.ClientResponse.Broadcast(SessionElevationErrors.OperationFailedWrongDataTemplate(), "Shell");
                    }
                    else if ((!RulesUtils.EvaluateRules(innerItem[Templates.ScriptWorkflowAction.Fields.EnableRule], dataItem, false) ? false : RulesUtils.EvaluateRules(item[Templates.Script.Fields.ShowRule], dataItem, false)))
                    {
                        UrlString urlString = new UrlString(UIUtil.GetUri("control:PowerShellRunner"));
                        urlString.Append("id", dataItem.ID.ToString());
                        urlString.Append("db", dataItem.Database.Name);
                        urlString.Append("lang", dataItem.Language.Name);
                        int number = dataItem.Version.Number;
                        urlString.Append("ver", number.ToString(CultureInfo.InvariantCulture));
                        urlString.Append("scriptId", item.ID.ToString());
                        urlString.Append("scriptDb", item.Database.Name);
                        if (Context.ClientPage.Application == null)
                        {
                            SheerResponse.ShowModalDialog(urlString.ToString(), "400", "220");
                        }
                        else
                        {
                            Context.ClientPage.ClientResponse.Broadcast(SheerResponse.ShowModalDialog(urlString.ToString(), "400", "220", "PowerShell Script Results", false), "Shell");
                        }
                    }
                }
            }
        }