示例#1
0
        internal ActionHandlerResult TryHandle(IActionCase actionCase)
        {
            ActionHandlerResult ret = null;

            if (Token.IsStateActive)
            {
                if (ActionUnits.Count > 0)
                {
                    ActionUnit ou = ActionUnits.FirstOrDefault(x => x.TryHandle(actionCase));
                    ret = Handle(ou);
                    if (ou != null && ou.TimeoutMs > 0)
                    {
                        Token.Reset(ou.TimeoutMs);
                    }
                }
            }
            return(ret);
        }
示例#2
0
        internal ActionHandlerResult Start()
        {
            ActionHandlerResult ret = null;

            Token.Name = Name;
            CreateInstance();
            CreateWorkflow();
            Token.SetRunning();
            if (ActionUnits.Count > 0)
            {
                ActionUnit ou = ActionUnits.FirstOrDefault(x => x is StartActionUnit);
                ret = Handle(ou);
                if (ou != null)
                {
                    Token.Reset(ou.TimeoutMs);
                }
            }
            return(ret);
        }