Esempio n. 1
0
        /// <summary>
        /// 根据指定参数启动流程
        /// </summary>
        /// <param name="mainId">实体唯一标识Id</param>
        /// <param name="projectId">项目Id</param>
        /// <param name="cName">控制器名称</param>
        /// <param name="user">当前用户</param>
        /// <returns></returns>
        public OperationResult Execute(String mainId, Guid wfModeId, User user)
        {
            String          msg    = String.Empty;
            OperationResult or     = new OperationResult(OperationResultType.Error);
            WFModel         design = WFModelService.Entities.Where(c => c.Id == wfModeId).FirstOrDefault();

            if (design.IsNullOrEmpty())
            {
                msg = "流程设计不存在或已过期.";
                return(new OperationResult(OperationResultType.QueryNull, msg));
            }

            // 根据指定参数启动流程
            WorkflowApplication instance = new WorkflowApplication(mainId, design.Id, user);

            // 任务准备方法
            instance.CreateStep = CreateTask;
            instance.WFComplete = Complete;
            tasks = new List <WFTask>();
            or    = instance.Execute();
            return(or);
        }