コード例 #1
0
ファイル: WF_DEF_Node.cs プロジェクト: AyreYang/Workflow
        private static IDCallback GetCallback(CallbackType type, WF_DEF_Node node)
        {
            if (node == null)
            {
                return(null);
            }

            IDCallback callback = null;

            switch ((NodeType)node.Type)
            {
            case NodeType.Start:
                switch (type)
                {
                case CallbackType.Callback4Approvers:
                    callback = node.CB_Approvers.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Approvers.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Input:
                    callback = node.CB_Input.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Input.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Output:
                    callback = node.CB_Output.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Output.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Notify:
                    callback = node.CB_Notify.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Notify.Value && !cb.IsDeleted) : null;
                    break;
                }
                break;

            case NodeType.Normal:
                switch (type)
                {
                case CallbackType.Callback4Approvers:
                    callback = node.CB_Approvers.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Approvers.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Input:
                    callback = node.CB_Input.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Input.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Output:
                    callback = node.CB_Output.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Output.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Notify:
                    callback = node.CB_Notify.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Notify.Value && !cb.IsDeleted) : null;
                    break;
                }
                break;

            case NodeType.Control:
                switch (type)
                {
                case CallbackType.Callback4Approvers:
                    callback = null;
                    break;

                case CallbackType.Callback4Input:
                    callback = node.CB_Input.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Input.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Output:
                    callback = node.CB_Output.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Output.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Notify:
                    callback = null;
                    break;
                }
                break;

            case NodeType.End:
                switch (type)
                {
                case CallbackType.Callback4Approvers:
                    callback = null;
                    break;

                case CallbackType.Callback4Input:
                    callback = node.CB_Input.HasValue ? node.Callbacks.FirstOrDefault(cb => cb.ID == node.CB_Input.Value && !cb.IsDeleted) : null;
                    break;

                case CallbackType.Callback4Output:
                    callback = null;
                    break;

                case CallbackType.Callback4Notify:
                    callback = null;
                    break;
                }
                break;
            }

            return(callback);
        }
コード例 #2
0
ファイル: WF_DEF_Node.cs プロジェクト: AyreYang/Workflow
        private static IDRule GetRule(RuleType type, WF_DEF_Node node)
        {
            if (node == null)
            {
                return(null);
            }

            IDRule rule = null;

            switch ((NodeType)node.Type)
            {
            case NodeType.Start:
                switch (type)
                {
                case RuleType.Rule4Approvers:
                    rule = node.RL_Approvers.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Approvers.Value && !r.IsDeleted) : null;
                    break;

                case RuleType.Rule4Input:
                    rule = null;
                    break;

                case RuleType.Rule4Output:
                    rule = node.RL_Output.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Output.Value && !r.IsDeleted) : null;
                    break;

                case RuleType.Rule4Status:
                    rule = node.RL_Status.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Status.Value && !r.IsDeleted) : null;
                    break;
                }
                break;

            case NodeType.Normal:
                switch (type)
                {
                case RuleType.Rule4Approvers:
                    rule = node.RL_Approvers.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Approvers.Value && !r.IsDeleted) : null;
                    break;

                case RuleType.Rule4Input:
                    rule = node.RL_Input.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Input.Value && !r.IsDeleted) : null;
                    break;

                case RuleType.Rule4Output:
                    rule = node.RL_Output.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Output.Value && !r.IsDeleted) : null;
                    break;

                case RuleType.Rule4Status:
                    rule = node.RL_Status.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Status.Value && !r.IsDeleted) : null;
                    break;
                }
                break;

            case NodeType.Control:
                switch (type)
                {
                case RuleType.Rule4Approvers:
                    rule = null;
                    break;

                case RuleType.Rule4Input:
                    rule = node.RL_Input.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Input.Value && !r.IsDeleted) : null;
                    break;

                case RuleType.Rule4Output:
                    rule = node.RL_Output.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Output.Value && !r.IsDeleted) : null;
                    break;

                case RuleType.Rule4Status:
                    rule = null;
                    break;
                }
                break;

            case NodeType.End:
                switch (type)
                {
                case RuleType.Rule4Approvers:
                    rule = null;
                    break;

                case RuleType.Rule4Input:
                    rule = node.RL_Input.HasValue ? node.Rules.FirstOrDefault(r => r.Type == (int)type && r.ID == node.RL_Input.Value && !r.IsDeleted) : null;
                    break;

                case RuleType.Rule4Output:
                    rule = null;
                    break;

                case RuleType.Rule4Status:
                    rule = null;
                    break;
                }
                break;
            }

            return(rule);
        }