Пример #1
0
        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));
        }
Пример #2
0
        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);
        }