private void GetJavaScript_AddGetRightValues(StringBuilder sb, Dictionary <string, bool> list) { sb.AppendLine("var rightValues = new Array();"); foreach (var value in RightValues.Where(r => r.IsInited).SelectMany(r => r.ValuesWithoutControl)) { sb.AppendFormat("Array.add(rightValues, '{0}');", value); sb.AppendLine(); } foreach (var clientID in RightValues.Where(r => r.IsInited).SelectMany(r => r.ClientIDs)) { list[clientID] = true; sb.AppendFormat("var valueConrol = $get('{0}'); if (valueConrol != null) Array.add(rightValues, valueConrol.value);", clientID); sb.AppendLine(); } sb.AppendLine(); }
public void ComputeActive(Controller controller) { bool?result = null; switch (CompareOperator) { case ControllerCompareOperator.Equal: case ControllerCompareOperator.NotEqual: case ControllerCompareOperator.GreaterThan: case ControllerCompareOperator.GreaterThanEqual: case ControllerCompareOperator.LessThan: case ControllerCompareOperator.LessThanEqual: foreach (var value in Values.Where(r => r.IsInited).SelectMany(r => r.Values)) { foreach (var rightValue in RightValues.Where(r => r.IsInited).SelectMany(r => Values)) { bool subRes = false; #region compare switch (CompareOperator) { case ControllerCompareOperator.Equal: subRes = (value == null && rightValue == null) || (value != null && value.Equals(rightValue)); break; case ControllerCompareOperator.NotEqual: subRes = (value == null && rightValue != null) || (value != null && !value.Equals(rightValue)); break; case ControllerCompareOperator.GreaterThan: if (value != null && rightValue != null) { var v1 = Convert.ToDecimal(value); var v2 = Convert.ToDecimal(rightValue); subRes = v1 > v2; } break; case ControllerCompareOperator.GreaterThanEqual: if (value != null && rightValue != null) { var v1 = Convert.ToDecimal(value); var v2 = Convert.ToDecimal(rightValue); subRes = v1 >= v2; } break; case ControllerCompareOperator.LessThan: if (value != null && rightValue != null) { var v1 = Convert.ToDecimal(value); var v2 = Convert.ToDecimal(rightValue); subRes = v1 < v2; } break; case ControllerCompareOperator.LessThanEqual: if (value != null && rightValue != null) { var v1 = Convert.ToDecimal(value); var v2 = Convert.ToDecimal(rightValue); subRes = v1 <= v2; } break; default: throw new ArgumentOutOfRangeException(); } #endregion if (JoinResultsAsOr) { result = (result ?? false) | subRes; } else { result = (result ?? true) & subRes; } } } break; case ControllerCompareOperator.IsEmpty: foreach (var value in Values.Where(r => r.IsInited).SelectMany(r => r.Values)) { bool subRes = value == null || "".Equals(value); if (JoinResultsAsOr) { result = (result ?? false) | subRes; } else { result = (result ?? true) & subRes; } } break; case ControllerCompareOperator.IsNotEmpty: foreach (var value in Values.Where(r => r.IsInited).SelectMany(r => r.Values)) { bool subRes = value != null && !"".Equals(value); if (JoinResultsAsOr) { result = (result ?? false) | subRes; } else { result = (result ?? true) & subRes; } } break; case ControllerCompareOperator.Or: foreach (var item in Childs) { item.ComputeActive(controller); if (result == null) { result = item.Result; } else { result |= item.Result; } if (result.Value) { break; } } break; case ControllerCompareOperator.And: foreach (var item in Childs) { item.ComputeActive(controller); if (result == null) { result = item.Result; } else { result &= item.Result; } } break; case ControllerCompareOperator.IsEnabled: break; case ControllerCompareOperator.IsDisabled: break; case ControllerCompareOperator.IsHidden: break; case ControllerCompareOperator.IsShown: break; case ControllerCompareOperator.IsReadOnly: break; case ControllerCompareOperator.IsNotReadOnly: break; default: throw new ArgumentOutOfRangeException(); } Result = result ?? DefaultResult; SetEnabled(controller); }