Beispiel #1
0
 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();
 }
Beispiel #2
0
        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);
        }