Exemple #1
0
        public override void Build(IAbpStepBodyDefinitionContext context)
        {
            var step1 = new AbpWorkflowStepBody();

            step1.Name         = "FixedUserAudit";
            step1.DisplayName  = "指定用户审核";
            step1.StepBodyType = typeof(GeneralAuditingStepBody);
            step1.Inputs.Add(new WorkflowParam()
            {
                InputType   = new SelectUserInputType(),
                Name        = "UserId",
                DisplayName = "审核人"
            });
            context.Create(step1);
            var step2 = new AbpWorkflowStepBody();

            step2.Name         = "FixedRoleAudit";
            step2.DisplayName  = "指定角色审核";
            step2.StepBodyType = typeof(RoleAuditingStepBody);
            step2.Inputs.Add(new WorkflowParam()
            {
                InputType   = new SelectRoleInputType(),
                Name        = "RoleName",
                DisplayName = "审核角色名"
            });
            context.Create(step2);
        }
Exemple #2
0
        protected virtual void BuildWorkflow(IEnumerable <WorkflowNode> allNodes, DefinitionSourceV1 source, IEnumerable <AbpWorkflowStepBody> stepBodys, WorkflowNode node)
        {
            if (source.Steps.Any(u => u.Id == node.Key))
            {
                return;
            }

            var stepSource = new StepSourceV1();

            stepSource.Id   = node.Key;
            stepSource.Name = node.Key;
            AbpWorkflowStepBody stepbody = stepBodys.FirstOrDefault(u => u.Name == node.StepBody.Name);

            if (stepbody == null)
            {
                stepbody = new AbpWorkflowStepBody()
                {
                    StepBodyType = typeof(NullStepBody)
                };
            }
            stepSource.StepType = $"{stepbody.StepBodyType.FullName}, {stepbody.StepBodyType.Assembly.FullName}";

            foreach (var input in stepbody.Inputs)
            {
                var value = node.StepBody.Inputs[input.Key].Value;
                if (!(value is IDictionary <string, object> || value is IDictionary <object, object>))
                {
                    value = $"\"{value}\"";
                }
                stepSource.Inputs.TryAdd(input.Key, value);
            }
            source.Steps.Add(stepSource);
            BuildBranching(allNodes, source, stepSource, stepBodys, node.NextNodes);
        }