Slickflow.Engine.Core.Pattern.GatewayExecutedResult.CreateGatewayExecutedResult C# (CSharp) Méthode

CreateGatewayExecutedResult() static private méthode

static private CreateGatewayExecutedResult ( GatewayExecutedStatus status ) : GatewayExecutedResult
status GatewayExecutedStatus
Résultat GatewayExecutedResult
        internal static GatewayExecutedResult CreateGatewayExecutedResult(GatewayExecutedStatus status)
        {
            GatewayExecutedResult result = new GatewayExecutedResult(GatewayExecutedStatus.Unknown, "Gateway节点的执行状态未知!");
            switch (status)
            {
                case GatewayExecutedStatus.Successed:
                    result = new GatewayExecutedResult(GatewayExecutedStatus.Successed, "Gateway节点成功执行!");
                    break;
                case GatewayExecutedStatus.FallBehindOfXOrJoin:
                    result = new GatewayExecutedResult(GatewayExecutedStatus.FallBehindOfXOrJoin, "第一个满足条件的节点已经执行,互斥合并节点不能再次被实例化!");
                    break;
                default:
                    break;
            }
            return result;
        }

Usage Example

        /// <summary>
        /// OrJoin合并时的节点完成方法
        /// 1. 如果有满足条件的OrJoin前驱转移,则会重新生成新的OrJoin节点实例
        /// </summary>
        /// <param name="processInstance"></param>
        /// <param name="fromTransition"></param>
        /// <param name="fromActivityInstance"></param>
        /// <param name="activityResource"></param>
        /// <param name="wfLinqDataContext"></param>
        public GatewayExecutedResult CompleteAutomaticlly(ProcessInstanceEntity processInstance,
            string transitionGUID,
            ActivityInstanceEntity fromActivityInstance,
            ActivityResource activityResource,
            IDbSession session)
        {
            var gatewayActivityInstance = base.CreateActivityInstanceObject(base.GatewayActivity, 
                processInstance, activityResource.AppRunner);

            gatewayActivityInstance.GatewayDirectionTypeID = (short)GatewayDirectionEnum.OrJoin;
            base.InsertActivityInstance(gatewayActivityInstance,
                session);

            base.CompleteActivityInstance(gatewayActivityInstance.ID,
                activityResource,
                session);

            gatewayActivityInstance.ActivityState = (short)ActivityStateEnum.Completed;
            base.GatewayActivityInstance = gatewayActivityInstance;
                        
            base.InsertTransitionInstance(processInstance,
                transitionGUID,
                fromActivityInstance,
                gatewayActivityInstance,
                TransitionTypeEnum.Forward,
                TransitionFlyingTypeEnum.NotFlying,
                activityResource.AppRunner,
                session);

            GatewayExecutedResult result = GatewayExecutedResult.CreateGatewayExecutedResult(GatewayExecutedStatus.Successed);
            return result;
        }
All Usage Examples Of Slickflow.Engine.Core.Pattern.GatewayExecutedResult::CreateGatewayExecutedResult