Beispiel #1
0
        private void ApplyFieldInfo(TModel model, ReaderFieldInfo fieldInfo, List <string> errors)
        {
            var value = DataReader.GetValue(fieldInfo.ColumnIndex);

            if (value is DBNull)
            {
                value = null;
            }

            value = fieldInfo.PropertyMap.Modifiers.Aggregate(value,
                                                              (current, modifier) => modifier.ModifyValue(current, fieldInfo));

            try
            {
                fieldInfo.PropertyMap.Setter.Invoke(model, new[] { value });
            }
            catch (ArgumentException ex)
            {
                const string msg = "Could not set property '{0}' to value '{1}' from column '{2}' of type '{3}' ({4}): {5}";

                errors.Add(string.Format(msg, fieldInfo.PropertyMap.PropertyName, value,
                                         fieldInfo.PropertyMap.ColumnName, DataReader.GetFieldType(fieldInfo.ColumnIndex),
                                         DataReader.GetDataTypeName(fieldInfo.ColumnIndex), ex.Message));
            }
        }
        /// <inheritdoc />
        public object ModifyValue(object value, ReaderFieldInfo fieldInfo)
        {
            if (fieldInfo.PropertyMap.PropertyType != typeof(string))
            {
                return(value);
            }

            return((value as string)?.TrimEnd());
        }