public static string CastToString(object val, DataType type, CultureInfo language) { object obj = default(object); if (!ParameterBase.Cast(val, type, out obj, DataType.String, language)) { throw new InternalCatalogException("Can not cast value of report parameter to string."); } return(ParameterInfo.CastValueToLabelString(val, language)); }
public static ParameterInfo Cast(ParameterInfo oldValue, ParameterInfo newType, CultureInfo language, ref bool metaChanges) { object[] array = null; object[] array2 = null; if (oldValue.Values != null) { array = new object[oldValue.Values.Length]; for (int i = 0; i < oldValue.Values.Length; i++) { if (!ParameterBase.Cast(oldValue.Values[i], oldValue.DataType, out array[i], newType.DataType, language)) { return(null); } } } if (oldValue.DefaultValues != null) { array2 = new object[oldValue.DefaultValues.Length]; for (int j = 0; j < oldValue.DefaultValues.Length; j++) { if (!ParameterBase.Cast(oldValue.DefaultValues[j], oldValue.DataType, out array2[j], newType.DataType, language)) { return(null); } } } if (oldValue.DataType != newType.DataType) { metaChanges = true; } ParameterInfo parameterInfo = new ParameterInfo(newType); parameterInfo.Values = array; parameterInfo.DefaultValues = array2; parameterInfo.StoreLabels(); return(parameterInfo); }