public void ToString(StringBuilder builder)
        {
            builder.Append(StringTokens.TagOpen);
            builder.Append(Tag);
            builder.Append(StringTokens.ArgumentsOpen);
            Condition.ToString(builder);
            builder.Append(StringTokens.ArgumentsClose);
            builder.Append(StringTokens.TagClose);

            if (TrueValue != null)
            {
                TrueValue.ToString(builder);
            }

            if (FalseValue != null)
            {
                builder.Append(StringTokens.ElseTag);
                FalseValue.ToString(builder);
            }

            builder.Append(StringTokens.TagOpen);
            builder.Append(StringTokens.ElementClose);
            builder.Append(Tag);
            builder.Append(StringTokens.TagClose);
        }
        /// <inheritdoc/>
        public override object DeserializeObject(Type type, object encoded)
        {
            if (encoded == null)
            {
                return(null);
            }

            if (encoded is string)
            {
                var s = encoded.ToString();
                if (s.IsIEqualTo(TrueValue.ToString()))
                {
                    return(true);
                }
                if (s.IsIEqualTo(FalseValue.ToString()))
                {
                    return(false);
                }
            }
            else
            {
                var value = Convert.ChangeType(encoded, type, CultureInfo.InvariantCulture);
                if (value == TrueValue)
                {
                    return(true);
                }
                else if (value == FalseValue)
                {
                    return(false);
                }
            }

            throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Value {0} could not be converted to bool.", encoded));
        }
Esempio n. 3
0
 public override void ToString(NodeStringBuilder strBuilder)
 {
     Condition.ToString(strBuilder);
     strBuilder.Append(" ? ");
     TrueValue.ToString(strBuilder);
     strBuilder.Append(" : ");
     FalseValue.ToString(strBuilder);
 }
        public IExpression Evaluate(EvaluationParameters parameters)
        {
            IExpression evalCond = Condition.TryEvaluate(parameters);

            if (parameters.FunctionProvider.ToBoolean(evalCond))
            {
                return(TrueValue.TryEvaluate(parameters));
            }
            return(FalseValue.TryEvaluate(parameters));
        }
Esempio n. 5
0
        /// <summary>Converts the specified <paramref name="value"/> to a <see cref="Boolean"/>.</summary>
        /// <param name="value">The value to convert.</param>
        /// <param name="targetType">The type that is expected by the caller.</param>
        /// <param name="parameter">The converter parameters.</param>
        /// <param name="culture">The culture information for this conversion.</param>
        /// <returns>True if the specified <paramref name="value"/> matches the value of the <seealso cref="TrueValue"/>, otherwise False.</returns>
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            Visibility realVal  = FalseValue;
            string     valueStr = value == null ? string.Empty : value.ToString();

            try { realVal = (Visibility)Enum.Parse(typeof(Visibility), valueStr); }
            catch { realVal = FalseValue; }

            return(TrueValue.Equals(realVal));
        }
Esempio n. 6
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (TrueValue == null)
            {
                return((value == null) ^ Invert);
            }
            bool b = TrueValue.Equals(value) ^ Invert;

            return(InnerConverter == null ? b : InnerConverter.Convert(b, targetType, parameter, culture));
        }
Esempio n. 7
0
 internal override void Walk(NodeWalker walker, int depth)
 {
     walker("(");
     Condition.Walk(walker, depth + 1);
     walker(" ? ");
     TrueValue.Walk(walker, depth + 1);
     walker(" : ");
     FalseValue.Walk(walker, depth + 1);
     walker(")");
 }
Esempio n. 8
0
            /// <summary>Initializes a new item.</summary>
            /// <param name="parent">The <see cref="VarCollection"/> containing the item.</param>
            /// <param name="defaultValue">The starting value of the item</param>
            /// <remarks><see cref="RawValue"/> initializes to <b>false</b>.<br/>
            /// For <see cref="DefaultValue"/> to be set to <b>true</b>, <i>defaultValue</i> must match <see cref="TrueValue"/> or "<b>true</b>" (case-insensitive).  All other inputs will be read as <b>false</b>.</remarks>
            public BoolVar(VarCollection parent, string defaultValue)
            {
                _parent = parent;
                _type   = VarType.Bool;
                bool loading = _parent.isLoading;

                _parent.isLoading = true;
                RawValue          = false;
                DefaultValue      = (defaultValue != null && (defaultValue == TrueValue.ToString() || defaultValue.ToString().ToLower() == "true"));
                _parent.isLoading = loading;
            }
Esempio n. 9
0
        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            if (TrueValue.Equals(value))
            {
                return(Test);
            }
            else if (FalseValue.Equals(value))
            {
                return(!Test);
            }

            return(false);
        }
Esempio n. 10
0
        public override ValueExpression Evaluate(IParserContext context)
        {
            bool result = context.ToBoolean(Condition.Evaluate(context).Value);

            if (result)
            {
                return(TrueValue.Evaluate(context));
            }
            else
            {
                return(FalseValue.Evaluate(context));
            }
        }
Esempio n. 11
0
    public override string GetDescriptionString()
    {
        string adjustedStr;

        if (valueIsPercentage)
        {
            adjustedStr = (TrueValue * 100).ToString() + "%";
        }
        else
        {
            adjustedStr = TrueValue.ToString();
        }
        return("+" + adjustedStr + " " + StatsList.StatsEnumToString(StatEnum) + "\n");
    }
Esempio n. 12
0
 /// <summary>
 /// Changes a string value into its proper boolean representation based on provided TrueValue and FalseValue.
 /// </summary>
 /// <param name="lineValue">The single part of a line separated by CsvSeparator.</param>
 /// <returns>A boolean value based on provided TrueValue and FalseValue.</returns>
 private bool ParseBool(string lineValue)
 {
     lineValue = lineValue.ToLower();
     if (lineValue == FalseValue.ToLower())
     {
         return(false);
     }
     else if (lineValue == TrueValue.ToLower())
     {
         return(true);
     }
     else
     {
         throw new Exception("String does not represent a boolean value.");
     }
 }
Esempio n. 13
0
        protected override void DoEmit(EmitContext ec)
        {
            var falseLabel = ec.DefineLabel();
            var endLabel   = ec.DefineLabel();

            Condition.Emit(ec);
            ec.EmitCastToBoolean(Condition.GetEvaluatedCType(ec));
            ec.Emit(OpCode.BranchIfFalse, falseLabel);

            TrueValue.Emit(ec);
            ec.Emit(OpCode.Jump, endLabel);

            ec.EmitLabel(falseLabel);
            FalseValue.Emit(ec);

            ec.EmitLabel(endLabel);
        }
Esempio n. 14
0
        private bool ResolveEnum()
        {
            if (!isEnumResolved)
            {
                if (EnumType != null)
                {
                    if (Enum.TryParse(EnumType, TrueValue.ToString(), out object trueEnum) &&
                        Enum.TryParse(EnumType, FalseValue.ToString(), out object falseEnum))
                    {
                        _trueEnum      = trueEnum;
                        _falseEnum     = falseEnum;
                        isEnumResolved = true;
                    }
                }
            }

            return(isEnumResolved);
        }
Esempio n. 15
0
        internal void ToSettings(string indexName, Dictionary <string, string> settings, bool isSubField)
        {
            var category = "Index-" + indexName.ToLower() + "-Fields-" + this.Name.ToLower();

            Lib.AddSettingAsNeeded(settings, category, "IsSubField", isSubField.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "Name", this.Name, true);

            Lib.AddSettingAsNeeded(settings, category, "Ordinal", Ordinal.ToString(), true);


            Lib.AddSettingAsNeeded(settings, category, "Value", ("" + Value).ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "IsPrimaryKey", IsPrimaryKey.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "StoredInIndex", StoredInIndex.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "Searchable", Searchable.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "Format", Format.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "Type", DataType.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "IsBoolean", IsBoolean.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "TrueValue", TrueValue.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "IsCreatedDate", IsCreatedDate.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "IsModifiedDate", IsModifiedDate.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "ForeignKeyTable", ForeignKeyTable.ToString(), true);

            Lib.AddSettingAsNeeded(settings, category, "ForeignKeyField", ForeignKeyField.ToString(), true);


            Lib.AddSettingAsNeeded(settings, category, "Calculation", Calculation.ToString(), true);
            foreach (Field sf in this.SubFields)
            {
                sf.ToSettings(indexName, settings, true);
            }
        }
Esempio n. 16
0
            /// <summary>Initializes a new item.</summary>
            /// <param name="parent">The <see cref="VarCollection"/> containing the item.</param>
            /// <param name="trueValue">The raw byte value stored in the file for <b>true</b>. Accepted values are <b>-1</b> to <b>255</b>. Default is <b>1</b>.</param>
            /// <param name="falseValue">The raw byte value stored in the file for <b>false</b>. Accepted values are <b>-1</b> to <b>255</b>. Default is <b>0</b>.</param>
            /// <param name="defaultValue">The starting value of the item</param>
            /// <exception cref="OverflowException"><i>trueValue</i> or <i>falseValue</i> is less than <b>-1</b> or greater than <b>255</b>.</exception>
            /// <remarks><see cref="RawValue"/> initializes to <b>false</b>.<br/>
            /// If <i>trueValue</i> or <i>falseValue</i> are <b>null</b> or cannot parsed, default values are used.<br/>
            /// Values of <b>-1</b> are converted to <b>255</b>.<br/>
            /// For <see cref="DefaultValue"/> to be set to <b>true</b>, <i>defaultValue</i> must match <see cref="TrueValue"/> or "<b>true</b>" (case-insensitive).  All other inputs will be read as <b>false</b>.</remarks>
            public BoolVar(VarCollection parent, string trueValue, string falseValue, string defaultValue)
            {
                _parent = parent;
                _type   = VarType.Bool;
                bool loading = _parent.isLoading;

                _parent.isLoading = true;
                try { TrueValue = byte.Parse(trueValue); }
                catch (FormatException) { /* do nothing */ }
                catch (ArgumentNullException) { /* do nothing */ }
                catch (OverflowException x)
                {
                    if (trueValue == "-1")
                    {
                        TrueValue = 255;
                    }
                    else
                    {
                        throw x;
                    }
                }
                try { FalseValue = byte.Parse(falseValue); }
                catch (FormatException) { /* do nothing */ }
                catch (ArgumentNullException) { /* do nothing */ }
                catch (OverflowException x)
                {
                    if (falseValue == "-1")
                    {
                        FalseValue = 255;
                    }
                    else
                    {
                        throw x;
                    }
                }
                RawValue          = false;
                DefaultValue      = (defaultValue != null && (defaultValue == TrueValue.ToString() || defaultValue.ToString().ToLower() == "true"));
                _parent.isLoading = loading;
            }
Esempio n. 17
0
        internal void FillDataSet(DataSet ds, string indexName, bool isSubField)
        {
            var dtField = ds.Tables["index_field"];

            var drFields = dtField.Select("index_name = '" + indexName + "' and field_name = '" + Name + "'");
            var drField  = dtField.NewRow();

            if (drFields.Length == 0)
            {
                dtField.Rows.Add(drField);
            }
            else
            {
                drField = drFields[0];
            }


            drField["index_name"] = indexName;
            drField["field_name"] = Name.ToString();
            drField["ordinal"]    = Ordinal.ToString();
            //drField["value"] = ("" + Value).ToString();
            drField["is_primary_key"]     = IsPrimaryKey.ToString();
            drField["is_stored_in_index"] = StoredInIndex.ToString();
            drField["is_searchable"]      = Searchable.ToString();
            drField["format"]             = Format.ToString();
            drField["type"]              = DataType.ToString();
            drField["is_boolean"]        = IsBoolean.ToString();
            drField["true_value"]        = TrueValue.ToString();
            drField["foreign_key_table"] = ForeignKeyTable.ToString();
            drField["foreign_key_field"] = ForeignKeyField.ToString();
            drField["calculation"]       = Calculation.ToString();

            foreach (Field sf in this.SubFields)
            {
                sf.FillDataSet(ds, indexName, true);
            }
        }
 public override string ToString(Formatting formatting)
 {
     return(String.Format("(({0}) ? ({1}) : ({2}))", Condition.ToString(formatting), TrueValue.ToString(formatting), FalseValue.ToString(formatting)));
 }
Esempio n. 19
0
 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
 {
     return(TrueValue.Equals(value));
 }
Esempio n. 20
0
 public override int GetHashCode()
 {
     return(MatchValue.GetHashCode() ^ TrueValue.GetHashCode() ^ FalseValue.GetHashCode());
 }
Esempio n. 21
0
 public override CType GetEvaluatedCType(EmitContext ec)
 {
     return(TrueValue.GetEvaluatedCType(ec));
 }
 public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
 {
     return(TrueValue.Equals(value) ? true : false);
 }
 public object ConvertBack(object value, Type targetType, object parameter, string language)
 {
     return(TrueValue.Equals(value) ? true : false);
 }
Esempio n. 24
0
 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
 {
     return(TrueValue?.Equals(value?.ToString(), StringComparison.OrdinalIgnoreCase) ?? false);
     //return "true".Equals(value?.ToString().ToLower()) ? TrueValue : FalseValue;
 }