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); }
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); }