/// <summary>
        /// 设置选中的Part,加载其属性
        /// </summary>
        /// <param name="element"></param>
        public void SetSelectPartAsCurrent(UIElement element)
        {
            var node = Part.FindAncestor <Node>(element);

            if (node != null)
            {
                var data = node.Data as ActivityNode;

                //将当前元素设为选择元素
                node.Diagram.SelectedPart = node;

                //属性设计器加载当前元素属性
                WebMethod.LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_ACTIVITY,
                                       node.Diagram.Tag.ToString(),
                                       WorkflowUtils.ExtractActivityInfoJson(data));

                return;
            }

            var link = Part.FindAncestor <Link>(element);

            if (link != null)
            {
                var data = link.Data as ActivityLink;
                link.Diagram.SelectedPart = link;
                WebMethod.LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_TRANSITION,
                                       link.Diagram.Tag.ToString(),
                                       WorkflowUtils.ExtractTransitionInfoJson(data));
            }
        }
        protected override bool DoAcceptText()
        {
            //先保留一个编辑元素的对象引用
            var part = this.AdornedPart.Data;
            //完成text编辑
            bool result = base.DoAcceptText();

            //将编辑后的元素更新到property grid控件
            var node = part as ActivityNode;

            if (node != null)
            {
                _webMethod.UpdateProcess(WorkflowUtils.CLIENTSCRIPT_PARAM_ACTIVITY,
                                         this.Diagram.Tag.ToString(), node.Key,
                                         WorkflowUtils.ExtractActivityInfoJson(node));
                return(result);
            }

            var link = part as ActivityLink;

            if (link != null)
            {
                _webMethod.UpdateProcess(WorkflowUtils.CLIENTSCRIPT_PARAM_TRANSITION,
                                         this.Diagram.Tag.ToString(), link.Key,
                                         WorkflowUtils.ExtractTransitionInfoJson(link));
            }

            return(result);
        }
 private void mainDiagram_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
 {
     if (string.Compare(this.mainDiagram.Tag.ToString(), WorkflowUtils.CurrentKey) != 0)
     {
         this.WebMethod.LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_WORKFLOW,
                                     this.mainDiagram.Tag.ToString(),
                                     WorkflowUtils.ExtractWorkflowInfoJson(this.mainDiagram));
     }
 }
        /// <summary>
        /// Tab关闭时触发
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Item_RequestClose(object sender, EventArgs e)
        {
            DiagramPageViewModel item = sender as DiagramPageViewModel;

            DiagramDataSource.Remove(item);
            this.WebInterAct.DeleteProcess(WorkflowUtils.CLIENTSCRIPT_PARAM_WORKFLOW,
                                           item.Key,
                                           WorkflowUtils.ExtractWorkflowInfoJson(item));
        }
Example #5
0
        static void Main(string[] args)
        {
            // The following code allows a client to use a non-fully qualified name and resolves https issues such as:
            // System.Net.WebException: The underlying connection was closed: Could not establish trust
            // relationship for the SSL/TLS secure channel
            // NOT for production, only for limited local development.
            //System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate (object sender,
            //    System.Security.Cryptography.X509Certificates.X509Certificate certificate,
            //    System.Security.Cryptography.X509Certificates.X509Chain chain,
            //    System.Net.Security.SslPolicyErrors sslPolicyErrors)
            //{
            //    return true;
            //};

            Console.Write("Setting up scope...");
            WorkflowManagementClient client = WorkflowUtils.CreateForSample(baseAddress, "WFMgrGettingStarted");

            WorkflowUtils.PrintDone();

            Console.Write("Publishing GetProducts activity...");
            client.PublishActivity("GetProducts", @"..\..\..\GetProductsActivities\GetProducts.xaml");
            WorkflowUtils.PrintDone();

            Console.Write("Publishing Workflow...");
            client.PublishWorkflow(workflowName, @"..\..\..\GetProductsActivities\GetProductsWorkflow.xaml");
            WorkflowUtils.PrintDone();

            Console.Write("Enter a search keyword: ");
            string SearchKeyword = Console.ReadLine();

            Console.Write("Starting workflow instance...");
            WorkflowStartParameters startParameters = new WorkflowStartParameters();

            startParameters.Content.Add("SearchKeyword", SearchKeyword);
            string instanceId = client.Workflows.Start(workflowName, startParameters);

            WorkflowUtils.PrintDone();

            Console.WriteLine("\nPolling UserStatus...\n");
            string finalUserStatus = client.WaitForWorkflowCompletion(workflowName, instanceId);

            WorkflowUtils.Print("Completed with status: " + finalUserStatus, ConsoleColor.Green);

            Console.WriteLine("Press any key to clean up scope.");
            Console.ReadKey();

            client.CleanUp();

            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
        private void AddNewCommandExecuted(WorkflowInfo info)
        {
            if (info == null)
            {
                throw new ArgumentNullException("WorkflowInfo不能为空");
            }
            WorkflowUtils.ProcessDatetime(info);
            DiagramPageViewModel vw = new DiagramPageViewModel(info);

            vw.RequestClose += this.Item_RequestClose;
            this.DiagramDataSource.Add(vw);

            this.OnPropertyChanged("DiagramDataSource");
        }
Example #7
0
        static void Main(string[] args)
        {
            // Check test settings - you can deploy to the test host to attach visual studio to it.
            bool test = false;

            Console.WriteLine("Press t to deploy to test host");
            test = Console.ReadLine().ToLower() == "t";
            string baseAddress = string.Format("https://{0}:12290/", machineName);

            if (test)
            {
                baseAddress = string.Format("http://{0}:12292/", machineName);
            }


            // Create scope
            Console.Write("Setting up scope...");
            WorkflowManagementClient client = WorkflowUtils.CreateForSample(baseAddress, scopeName);

            WorkflowUtils.PrintDone();

            // Deploy all activities
            Console.Write("Publishing Phone activities...");
            client.PublishActivity("ReceiveCallerInput", @"..\..\..\PhoneMenuWorkflows\ReceiveCallerInput.xaml");
            client.PublishActivity("RetrieveUserFlights", @"..\..\..\PhoneMenuWorkflows\RetrieveUserFlights.xaml");
            client.PublishActivity("SetNextOptions", @"..\..\..\PhoneMenuWorkflows\SetNextOptions.xaml");
            client.PublishActivity("SayGoodbye", @"..\..\..\PhoneMenuWorkflows\SayGoodbye.xaml");

            WorkflowUtils.PrintDone();

            // Deploy actual workflow, by specifying the external variables
            Console.Write("Publishing Workflow...");
            Collection <ExternalVariable> externalVariables = new Collection <ExternalVariable>
            {
                new ExternalVariable <string> {
                    Name = "UserOptions", Default = "", Modifiers = VariableModifiers.Mapped
                },
                new ExternalVariable <string> {
                    Name = "PhoneNr", Default = "", Modifiers = VariableModifiers.Mapped
                },
                new ExternalVariable <string> {
                    Name = "GoodbyeStatement", Default = "", Modifiers = VariableModifiers.Mapped
                }
            };

            client.PublishWorkflow(workflowName, @"..\..\..\PhoneMenuWorkflows\FlightMenuStateMachine.xaml", externalVariables);

            WorkflowUtils.PrintDone();
        }
        private void AddNewCommandExecuted(WorkflowInfo info)
        {
            if (info == null)
            {
                throw new ArgumentNullException("WorkflowInfo不能为空");
            }

            DiagramPageViewModel vw = new DiagramPageViewModel(info, WebInterAct);

            vw.RequestClose += this.Item_RequestClose;
            this.DiagramDataSource.Add(vw);
            WebInterAct.LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_WORKFLOW,
                                     vw.Key,
                                     WorkflowUtils.ExtractWorkflowInfoJson(vw));
        }
        protected override void OnLinkAdded(Link link)
        {
            bool selfLink = false;

            if (link.FromNode == link.ToNode)
            {
                selfLink            = true;
                link.Route.FromSpot = Spot.MiddleLeft;
                link.Route.ToSpot   = Spot.MiddleTop;
            }

            base.OnLinkAdded(link);

            var data = link.Data as ActivityLink;

            if (data == null)
            {
                return;
            }

            if (IsOverviewDiagram(link))
            {
                return;
            }

            if (string.IsNullOrEmpty(data.Key))
            {
                data.Key       = CreateTransitionKey();
                data.WfEnabled = true;
            }

            var nodeData = link.ToNode.Data as ActivityNode;

            if (selfLink || nodeData.Category == ActivityType.Initial.ToString())
            {
                data.WfReturnLine = true;
            }

            _webMethod.LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_TRANSITION,
                                    link.Diagram.Tag.ToString(),
                                    WorkflowUtils.ExtractTransitionInfoJson(data));

            string strKey = string.Format("{0}@{1}", link.Diagram.Tag.ToString(), data.Key);

            WorkflowUtils.CurrentKey = strKey;
        }
Example #10
0
        public override void DoDeactivate()
        {
            base.DoDeactivate();
            var link = this.Diagram.SelectedLink;

            ActivityLink linkData = (ActivityLink)link.Data;

            linkData.WfReturnLine = false;

            if (linkData.From == linkData.To || linkData.To == "N0")
            {
                linkData.WfReturnLine = true;
            }

            DiagramUtils.WebInterAct.LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_TRANSITION,
                                                  this.Diagram.Tag.ToString(),
                                                  WorkflowUtils.ExtractTransitionInfoJson(linkData));
        }
Example #11
0
 public /*protected*/ override object ProcessData(IDataProducer sender, object data)
 {
     try
     {
         DocumentCorpus corpus         = (DocumentCorpus)data;
         DocumentCorpus filteredCorpus = new DocumentCorpus();
         DocumentCorpus dumpCorpus     = new DocumentCorpus();
         filteredCorpus.CopyFeaturesFrom(corpus);
         dumpCorpus.CopyFeaturesFrom(corpus);
         ArrayList <Document> dumpDocumentList = new ArrayList <Document>();
         foreach (Document document in corpus.Documents)
         {
             try
             {
                 if (OnFilterDocument != null)
                 {
                     if (!OnFilterDocument(document, mLogger))
                     {
                         dumpDocumentList.Add(document);
                     }
                 }
             }
             catch (Exception exception)
             {
                 mLogger.Error("ProcessDocument", exception);
             }
         }
         foreach (Document doc in dumpDocumentList)
         {
             corpus.Remove(doc);
             dumpCorpus.AddDocument(doc);
         }
         if (dumpCorpus.Documents.Count > 0)
         {
             WorkflowUtils.DispatchData(this, dumpCorpus, mCloneDumpOnFork, mDumpDispatchPolicy, mDumpDataConsumers, mLogger);
         }
         return(corpus.Documents.Count > 0 ? corpus : null);
     }
     catch (Exception exception)
     {
         mLogger.Error("ProcessData", exception);
         return(data);
     }
 }
Example #12
0
 public void Load(string siteId, string dbConnectionString)
 {
     if (mHistorySize > 0)
     {
         using (SqlConnection connection = new SqlConnection(dbConnectionString))
         {
             connection.Open();
             DataTable table = new DataTable();
             if (siteId == null)
             {
                 using (SqlCommand cmd = new SqlCommand(string.Format("SELECT TOP {0} hash FROM Documents WHERE siteId IS NULL ORDER BY time DESC", mHistorySize), connection))
                 {
                     cmd.CommandTimeout = 0;
                     using (SqlDataReader reader = cmd.ExecuteReader())
                     {
                         table.Load(reader);
                     }
                 }
             }
             else
             {
                 using (SqlCommand cmd = new SqlCommand(string.Format("SELECT TOP {0} hash FROM Documents WHERE siteId = @siteId ORDER BY time DESC", mHistorySize), connection))
                 {
                     cmd.CommandTimeout = 0;
                     WorkflowUtils.AssignParamsToCommand(cmd, "siteId", Utils.Truncate(siteId, 400));
                     using (SqlDataReader reader = cmd.ExecuteReader())
                     {
                         table.Load(reader);
                     }
                 }
             }
             mHistory.First.Clear();
             mHistory.Second.Clear();
             for (int i = table.Rows.Count - 1; i >= 0; i--)
             {
                 DataRow row    = table.Rows[i];
                 Guid    itemId = (Guid)row["hash"];
                 mHistory.First.Add(itemId);
                 mHistory.Second.Enqueue(itemId);
             }
         }
     }
 }
Example #13
0
        public override void DoMouseDown()
        {
            if (this.Active)
            {
                new WebInterAction().LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_WORKFLOW,
                                                  this.Diagram.Tag.ToString(),
                                                  WorkflowUtils.ExtractWorkflowInfoJson(this.Diagram));

                var form = this.Diagram.PartsModel.FindNodeByKey("menuNode");
                if (form == null)
                {
                    return;
                }

                form.Visible = false;
            }

            // all done!
            StopTool();
        }
        private void Link_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            e.Handled = true;
            Northwoods.GoXam.PartManager.PartBinding currentBinding = (Northwoods.GoXam.PartManager.PartBinding)((sender as FrameworkElement).DataContext);
            ActivityLink linkData = currentBinding.Data as ActivityLink;

            if (linkData == null)
            {
                return;
            }

            string strKey = string.Format("{0}@{1}", this.mainDiagram.Tag.ToString(), linkData.Key);

            if (string.Compare(strKey, WorkflowUtils.CurrentKey) != 0)
            {
                this.WebMethod.LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_TRANSITION,
                                            this.mainDiagram.Tag.ToString(),
                                            WorkflowUtils.ExtractTransitionInfoJson(linkData));

                WorkflowUtils.CurrentKey = strKey;
            }
        }
        ////初始化过程中也会执行!!!
        protected override void OnNodeAdded(Node node)
        {
            base.OnNodeAdded(node);

            ActivityNode data = node.Data as ActivityNode;

            if (data == null)
            {
                return;
            }

            if (IsOverviewDiagram(node))
            {
                return;
            }

            if (data.IsDynamic == false)
            {
                ActivityType nodeType = (ActivityType)Enum.Parse(typeof(ActivityType), data.Category, false);
                if (!IsValidKey(data.Key, nodeType, node.Diagram))
                {
                    data.Key = CreateActivityKey();
                }
            }
            else
            {
                if (!IsValidKey(data.Key, ActivityType.Normal, node.Diagram))
                {
                    data.Key = CreateActivityKey();
                }
                data.IsDynamic = true;
            }

            _webMethod.LoadProperty(WorkflowUtils.CLIENTSCRIPT_PARAM_ACTIVITY,
                                    node.Diagram.Tag.ToString(),
                                    WorkflowUtils.ExtractActivityInfoJson(data));
        }
        private void ContextMenu_Opened(object sender, RoutedEventArgs e)
        {
            //var position = this.mainDiagram.LastMousePointInModel;
            //ContextMenuService.GetContextMenu(sender as FrameworkElement);
            //(sender as Shared.Silverlight.Controls.ContextMenu).OpenPopup(position);

            Northwoods.GoXam.PartManager.PartBinding currentBinding = (Northwoods.GoXam.PartManager.PartBinding)((sender as FrameworkElement).DataContext);
            ActivityNode nodeData = currentBinding.Data as ActivityNode;

            if (nodeData == null)
            {
                return;
            }

            string strKey = string.Format("{0}@{1}", this.mainDiagram.Tag.ToString(), nodeData.Key);

            if (string.Compare(strKey, WorkflowUtils.CurrentKey) != 0)
            {
                HtmlPage.Window.Invoke("LoadProperty", WorkflowUtils.CLIENTSCRIPT_PARAM_ACTIVITY, this.mainDiagram.Tag.ToString(), WorkflowUtils.ExtractActivityInfoJson(nodeData));

                WorkflowUtils.CurrentKey = strKey;
            }
        }
        /// <summary>
        /// プレビューコンテント更新要求
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        async Task OnACT_REQINVALIDATE_PREVIEW(object param)
        {
            this.mLogger.Debug("IN - {@Param}", param);

            var memCache      = mContainer.GetInstance <IMemoryCache> ();
            var intentManager = mContainer.GetInstance <IIntentManager> ();

            ReqInvalidatePreviewParameter paramObject = new ReqInvalidatePreviewParameter();

            JsonConvert.PopulateObject(param.ToString(), paramObject);

            long?currentPreviewContentId = null; //< プレビューの表示を行うコンテントID

            try {
                switch (paramObject.Operation)
                {
                case "NavigationPosition":
                {
                    ContentListParam objContentList;
                    if (memCache.TryGetValue("ContentList", out objContentList))
                    {
                        mCurrentPreviewContentListPosition = paramObject.Position;

                        WorkflowUtils.ExecuteInvalidatePreviewInfo(intentManager, memCache, objContentList.ContentList.Length, mCurrentPreviewContentListPosition);

                        // コンテント一覧の項目位置(ReqInvalidatePreviewParameter.Position)にあるコンテント情報を読み込む
                        var content = objContentList.ContentList[mCurrentPreviewContentListPosition];
                        currentPreviewContentId = content.Id;
                        intentManager.AddIntent(ServiceType.Server, "ContentPreview", new ContentPreviewHandler.HandlerParameter {
                                ContentId = content.Id
                            });
                    }
                    else
                    {
                        throw new ApplicationException("キャッシュからコンテント一覧を取得できませんでした。");
                    }
                }
                break;

                case "NavigationNext":
                {
                    ContentListParam objContentList;
                    if (memCache.TryGetValue("ContentList", out objContentList))
                    {
                        if (objContentList.ContentList.Length > mCurrentPreviewContentListPosition + 1)
                        {
                            mCurrentPreviewContentListPosition = mCurrentPreviewContentListPosition + 1;

                            WorkflowUtils.ExecuteInvalidatePreviewInfo(intentManager, memCache, objContentList.ContentList.Length, mCurrentPreviewContentListPosition);

                            var content = objContentList.ContentList[mCurrentPreviewContentListPosition];
                            this.mLogger.Debug($"現在位置の次のコンテントを読み込みます({@content.Id})");
                            currentPreviewContentId = content.Id;
                            intentManager.AddIntent(ServiceType.Server, "ContentPreview", new ContentPreviewHandler.HandlerParameter {
                                    ContentId = content.Id
                                });
                        }
                    }
                    else
                    {
                        throw new ApplicationException("キャッシュからコンテント一覧を取得できませんでした。");
                    }
                }
                break;

                case "NavigationPrev":
                    this.mLogger.Debug("Operation={@OperationName}", paramObject.Operation); {
                        ContentListParam objContentList;
                        if (memCache.TryGetValue("ContentList", out objContentList))
                        {
                            if (mCurrentPreviewContentListPosition > 0)
                            {
                                mCurrentPreviewContentListPosition = mCurrentPreviewContentListPosition - 1;

                                WorkflowUtils.ExecuteInvalidatePreviewInfo(intentManager, memCache, objContentList.ContentList.Length, mCurrentPreviewContentListPosition);

                                var content = objContentList.ContentList[mCurrentPreviewContentListPosition];
                                this.mLogger.Debug($"現在位置の前のコンテントを読み込みます({@content.Id})");
                                currentPreviewContentId = content.Id;
                                intentManager.AddIntent(ServiceType.Server, "ContentPreview", new ContentPreviewHandler.HandlerParameter {
                                    ContentId = content.Id
                                });
                            }
                        }
                        else
                        {
                            throw new ApplicationException("キャッシュからコンテント一覧を取得できませんでした。");
                        }
                    }
                    break;

                case "Content":
                // TODO: 未実装
                default:
                    this.mLogger.Warn("処理できないオペレーション名({@Operation})です", paramObject.Operation);
                    break;
                }

                if (currentPreviewContentId.HasValue)
                {
                    // コンテント情報の更新
                    intentManager.AddIntent(ServiceType.Server, "ContentOperationExecution", new ContentOperationExecutionHandler.HandlerParameter(
                                                new ContentOperationExecutionHandler.HandlerParameter.Operation[] {
                        new ContentOperationExecutionHandler.HandlerParameter.Operation {
                            OperationName = "Read"
                        }
                    })
                    {
                        ContentId = currentPreviewContentId.Value
                    });
                }
            } catch (Exception expr) {
                this.mLogger.Error(expr);
            }

            this.mLogger.Debug("OUT");
        }
        private void Process_MouseButton(object sender, MouseButtonEventArgs e)
        {
            //e.Handled = true;
            if (string.Compare(this.mainDiagram.Tag.ToString(), WorkflowUtils.CurrentKey) != 0)
            {
                HtmlPage.Window.Invoke("LoadProperty", WorkflowUtils.CLIENTSCRIPT_PARAM_WORKFLOW, this.mainDiagram.Tag.ToString(), WorkflowUtils.ExtractWorkflowInfoJson(this.mainDiagram));

                WorkflowUtils.CurrentKey = this.mainDiagram.Tag.ToString();
            }
        }
Example #19
0
        private static bool CompareSessionOptions(CimConnectionManager.SessionEntry sessionEntry, CimSessionOptions options2, PSCredential credential2, string certificateThumbprint, AuthenticationMechanism authenticationMechanism, bool useSsl, uint port, PSSessionOption pssessionOption)
        {
            TimeSpan timeout = sessionEntry.SessionOptions.Timeout;

            if (timeout.Equals(options2.Timeout))
            {
                if (string.Equals(sessionEntry.SessionOptions.Culture.ToString(), options2.Culture.ToString(), StringComparison.OrdinalIgnoreCase))
                {
                    if (string.Equals(sessionEntry.SessionOptions.UICulture.ToString(), options2.UICulture.ToString(), StringComparison.OrdinalIgnoreCase))
                    {
                        if (string.Equals(sessionEntry.CertificateThumbprint, certificateThumbprint, StringComparison.OrdinalIgnoreCase))
                        {
                            if (sessionEntry.AuthenticationMechanism == authenticationMechanism)
                            {
                                if (WorkflowUtils.CompareCredential(sessionEntry.Credential, credential2))
                                {
                                    if (sessionEntry.UseSsl == useSsl)
                                    {
                                        if (sessionEntry.Port == port)
                                        {
                                            if (!(pssessionOption == null ^ sessionEntry.PSSessionOption == null))
                                            {
                                                if (pssessionOption != null && sessionEntry.PSSessionOption != null)
                                                {
                                                    if (sessionEntry.PSSessionOption.ProxyAccessType == pssessionOption.ProxyAccessType)
                                                    {
                                                        if (sessionEntry.PSSessionOption.ProxyAuthentication == pssessionOption.ProxyAuthentication)
                                                        {
                                                            if (WorkflowUtils.CompareCredential(sessionEntry.PSSessionOption.ProxyCredential, pssessionOption.ProxyCredential))
                                                            {
                                                                if (sessionEntry.PSSessionOption.SkipCACheck == pssessionOption.SkipCACheck)
                                                                {
                                                                    if (sessionEntry.PSSessionOption.SkipCNCheck == pssessionOption.SkipCNCheck)
                                                                    {
                                                                        if (sessionEntry.PSSessionOption.SkipRevocationCheck == pssessionOption.SkipRevocationCheck)
                                                                        {
                                                                            if (sessionEntry.PSSessionOption.NoEncryption == pssessionOption.NoEncryption)
                                                                            {
                                                                                if (sessionEntry.PSSessionOption.UseUTF16 != pssessionOption.UseUTF16)
                                                                                {
                                                                                    return(false);
                                                                                }
                                                                            }
                                                                            else
                                                                            {
                                                                                return(false);
                                                                            }
                                                                        }
                                                                        else
                                                                        {
                                                                            return(false);
                                                                        }
                                                                    }
                                                                    else
                                                                    {
                                                                        return(false);
                                                                    }
                                                                }
                                                                else
                                                                {
                                                                    return(false);
                                                                }
                                                            }
                                                            else
                                                            {
                                                                return(false);
                                                            }
                                                        }
                                                        else
                                                        {
                                                            return(false);
                                                        }
                                                    }
                                                    else
                                                    {
                                                        return(false);
                                                    }
                                                }
                                                return(true);
                                            }
                                            else
                                            {
                                                return(false);
                                            }
                                        }
                                        else
                                        {
                                            return(false);
                                        }
                                    }
                                    else
                                    {
                                        return(false);
                                    }
                                }
                                else
                                {
                                    return(false);
                                }
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Example #20
0
        public override void DoMouseDown()
        {
            base.DoMouseDown();

            Diagram diagram = this.Diagram;

            if (diagram == null)
            {
                return;
            }

            //得到当前的Part
            Part currentPart = FindPartAt(diagram.LastMousePointInModel, true);

            if (currentPart == null)
            {
                //活动上下文菜单
                var form = this.Diagram.PartsModel.FindNodeByKey(DiagramPage.ACTCONTEXT_MENU);

                if (form != null)
                {
                    form.Visible = false;
                }

                //流程上下文菜单
                form = this.Diagram.PartsModel.FindNodeByKey(DiagramPage.WFCONTEXT_MENU);

                if (form != null)
                {
                    form.Visible = false;
                }

                //如果Part和当前Part不一致,则切换属性
                if (string.Compare(diagram.Tag.ToString(), WorkflowUtils.CurrentKey) != 0)
                {
                    HtmlPage.Window.Invoke("LoadProperty", WorkflowUtils.CLIENTSCRIPT_PARAM_WORKFLOW, diagram.Tag.ToString(), WorkflowUtils.ExtractWorkflowInfoJson(diagram));
                    WorkflowUtils.CurrentKey = diagram.Tag.ToString();
                }
            }
            else
            {
                if (currentPart.DataContext is Northwoods.GoXam.PartManager.PartBinding)
                {
                    Northwoods.GoXam.PartManager.PartBinding currentBinding = (Northwoods.GoXam.PartManager.PartBinding)((currentPart as FrameworkElement).DataContext);

                    if (currentBinding.Data == null)
                    {
                        return;
                    }

                    if (currentBinding.Data is ActivityNode)
                    {
                        ActivityNode nodeData = currentBinding.Data as ActivityNode;

                        if (nodeData == null)
                        {
                            return;
                        }

                        string strKey = string.Format("{0}@{1}", diagram.Tag.ToString(), nodeData.Key);

                        if (string.Compare(strKey, WorkflowUtils.CurrentKey) != 0)
                        {
                            HtmlPage.Window.Invoke("LoadProperty", WorkflowUtils.CLIENTSCRIPT_PARAM_ACTIVITY, diagram.Tag.ToString(), WorkflowUtils.ExtractActivityInfoJson(nodeData));
                            WorkflowUtils.CurrentKey = strKey;
                        }
                    }
                }
            }
        }
 protected override object ProduceData()
 {
     // are we done?
     if (mCurrentDirIdx >= mDataDirs.Length)
     {
         Stop();
         return(null);
     }
     // do we need to get more files?
     if (mFiles == null)
     {
         mFiles = Directory.GetFiles(mDataDirs[mCurrentDirIdx], "*.xml");
         Array.Sort(mFiles);
     }
     // did we process all currently available files?
     if (mCurrentFileIdx >= mFiles.Length)
     {
         mFiles          = null;
         mCurrentFileIdx = 0;
         mCurrentDirIdx++;
         return(null);
     }
     try
     {
         // read next file
         mLogger.Info("ProduceData", "Reading " + mFiles[mCurrentFileIdx] + " ...");
         DocumentCorpus corpus = new DocumentCorpus();
         StreamReader   reader = new StreamReader(mFiles[mCurrentFileIdx]);
         corpus.ReadXml(new XmlTextReader(reader));
         //string fileName = new FileInfo(mFiles[mCurrentFileIdx]).Name;
         //string corpusId = new Guid(fileName.Split('_', '.')[3]).ToString();
         //corpus.Features.SetFeatureValue("guid", corpusId);
         reader.Close();
         // refresh corpus ID (to avoid conflicts)
         corpus.Features.SetFeatureValue("guid", Guid.NewGuid().ToString());
         // remove underscores in feature names
         string[] tmp = new string[corpus.Features.Names.Count];
         corpus.Features.Names.CopyTo(tmp, /*index=*/ 0);
         foreach (string featureName in tmp)
         {
             if (featureName.StartsWith("_"))
             {
                 corpus.Features.SetFeatureValue(featureName.TrimStart('_'), corpus.Features.GetFeatureValue(featureName));
                 corpus.Features.RemoveFeature(featureName);
             }
         }
         foreach (Document doc in corpus.Documents)
         {
             // remove annotations
             doc.ClearAnnotations();
             // remove underscores in feature names
             tmp = new string[doc.Features.Names.Count];
             doc.Features.Names.CopyTo(tmp, /*index=*/ 0);
             foreach (string featureName in tmp)
             {
                 if (featureName.StartsWith("_"))
                 {
                     doc.Features.SetFeatureValue(featureName.TrimStart('_'), doc.Features.GetFeatureValue(featureName));
                     doc.Features.RemoveFeature(featureName);
                 }
             }
             // remove processing-specific features
             foreach (string featureName in new string[] {
                 "detectedLanguage",
                 "detectedCharRange",
                 "bprBoilerplateCharCount",
                 "bprContentCharCount",
                 "domainName",
                 "urlKey",
                 "rev",
                 "blacklisted"
             })
             {
                 doc.Features.RemoveFeature(featureName);
             }
             // if there's raw data available, reset the content
             string raw = doc.Features.GetFeatureValue("raw");
             if (raw != null)
             {
                 doc.Features.SetFeatureValue("contentType", "Html");
                 doc.Text = GetEncoding(doc.Features.GetFeatureValue("charSet")).GetString(Convert.FromBase64String(raw));
             }
         }
         mCurrentFileIdx++;
         while (WorkflowUtils.GetBranchLoadMax(this) > 10) // I'm giving it all she's got, Captain!
         {
             Thread.Sleep(1000);
         }
         return(corpus);
     }
     catch (Exception e)
     {
         mCurrentFileIdx++;
         throw e;
     }
 }
        public override void DoActivate()
        {
            base.DoActivate();
            var          part     = this.AdornedPart.Data;
            ActivityNode nodeData = part as ActivityNode;
            string       strKey   = string.Format("{0}@{1}", this.Diagram.Tag.ToString(), nodeData.Key);

            if (string.Compare(this.Diagram.Tag.ToString(), WorkflowUtils.CurrentKey) != 0)
            {
                HtmlPage.Window.Invoke("LoadProperty", WorkflowUtils.CLIENTSCRIPT_PARAM_ACTIVITY, this.Diagram.Tag.ToString(), WorkflowUtils.ExtractActivityInfoJson(nodeData));

                WorkflowUtils.CurrentKey = strKey;
            }
        }