/// <summary> /// Whether or not the given value is present for the field represented by the field generator. /// </summary> /// <param name="value">The value to check is selected</param> /// <param name="fieldGenerator">The field generator wrapping the field</param> /// <returns>Whether or not the value is selected</returns> public static bool IsSelected <TModel, T>(this IFieldGenerator <TModel, T> fieldGenerator, object value) { if (HasEnumerableValues(fieldGenerator)) { return(GetEnumerableValues(fieldGenerator).Contains(value)); } var val = fieldGenerator.GetValue(); if (val == null) { return(value == null); } if (HasMultipleEnumValues(fieldGenerator)) { return((Convert.ToInt64(fieldGenerator.GetValue()) & Convert.ToInt64(value)) != 0); } return(val.Equals(value)); }
protected IEnumerable <object> GetValues() { return((((IEnumerable)FieldGenerator.GetValue()) ?? new object[] {}).Cast <object>()); }
/// <summary> /// Returns the enumerated values of a field that is an <see cref="IEnumerable{T}"/>. /// </summary> /// <param name="fieldGenerator">The field generator wrapping the field</param> /// <returns>The enumerated values of the field</returns> public static IEnumerable <object> GetEnumerableValues <TModel, T>(this IFieldGenerator <TModel, T> fieldGenerator) { return((((IEnumerable)fieldGenerator.GetValue()) ?? new object[] { }).Cast <object>()); }