Exemple #1
0
        public JsonResult ExecCommand(WorkflowRunParameter runParameter)
        {
            WorkflowHelper helper = new WorkflowHelper(Sec.User);

            helper.OpenWorkflow(runParameter.InstanceId, runParameter.ItemId);
            if (!string.IsNullOrEmpty(runParameter.OpinionContent))
            {
                helper.SetOpinion(HttpUtility.HtmlEncode(runParameter.OpinionContent), runParameter.OpinionArea);
            }
            bool result = false;

            switch (runParameter.Command.ToLower())
            {
            case "run":
                var form = GetForm(helper) as IFlowFormService;
                if (form == null || form.CanRunFlow())
                {
                    helper.Run(runParameter.RunContext);
                    result = true;
                }
                break;

            case "rollback":
                result = helper.Rollback();
                break;

            case "pushback":
                result = helper.Pushback();
                break;

            case "backtoroot":
                result = helper.PushbackToRoot();
                break;

            case "forceend":
                result = helper.ForceToEnd();
                break;

            case "switch":
                helper.Switch(runParameter.RunContext.First());
                result = true;
                break;

            case "delete":
                DeleteWorkflow(helper);
                result = true;
                break;
            }
            return(Json(result));
        }