Пример #1
0
        //Public

        #region 创建工作流应用程序 —— static WorkflowApplicationProxy CreateWorkflowApplication(...
        /// <summary>
        /// 创建工作流应用程序
        /// </summary>
        /// <param name="activity">活动</param>
        /// <param name="parameters">参数字典</param>
        /// <param name="definitionIdentity">工作流定义标识</param>
        /// <returns>工作流应用程序代理</returns>
        public static WorkflowApplicationProxy CreateWorkflowApplication(Activity activity, IDictionary <string, object> parameters, WorkflowIdentity definitionIdentity = null)
        {
            WorkflowApplicationProxy proxy = new WorkflowApplicationProxy(activity, parameters, definitionIdentity);

            proxy.Run();

            return(proxy);
        }
Пример #2
0
        /// <summary>
        /// 恢复工作流应用程序
        /// </summary>
        /// <param name="activity">活动</param>
        /// <param name="workflowInstanceId">工作流实例Id</param>
        /// <param name="bookmarkName">书签名称</param>
        /// <param name="parameters">参数字典</param>
        /// <param name="definitionIdentity">工作流定义标识</param>
        /// <returns>工作流应用程序代理</returns>
        public static WorkflowApplicationProxy ResumeWorkflowApplicationFromBookmark(Activity activity, Guid workflowInstanceId, string bookmarkName, IDictionary <string, object> parameters, WorkflowIdentity definitionIdentity = null)
        {
            try
            {
                WorkflowApplicationProxy proxy = new WorkflowApplicationProxy(activity, null, definitionIdentity);

                proxy.Load(workflowInstanceId);
                proxy.ResumeFromBookmark(bookmarkName, parameters);

                return(proxy);
            }
            catch (InstanceLockedException)
            {
                Thread.Sleep(200);
                return(ResumeWorkflowApplicationFromBookmark(activity, workflowInstanceId, bookmarkName, parameters, definitionIdentity));
            }
            catch (InstancePersistenceCommandException exception)
            {
                throw new InstancePersistenceCommandException($"工作流实例\"{workflowInstanceId}\"存在异常!", exception);
            }
        }