Example #1
0
        public static object StringToField(this IFieldInfoDescriptor fieldDescriptor, string value)
        {
            if (value == null)
            {
                return(null);
            }

            value = fieldDescriptor.StringTrim(value);

            if (string.Empty.Equals(value) && fieldDescriptor.Converter == null)
            {
                return(value);
            }

            if (fieldDescriptor.Converter == null && fieldDescriptor.Type == null)
            {
                return(value);
            }

            ConverterBase converterInstance =
                fieldDescriptor.Converter == null
                ? ConverterFactory.GetDefaultConverter(fieldDescriptor.Type, fieldDescriptor.ConverterFormat)
                : ConverterFactory.GetConverter(fieldDescriptor.Converter, fieldDescriptor.ConverterFormat);

            return(converterInstance == null
                ? value
                : converterInstance.StringToField(value));
        }
Example #2
0
        internal static object StringToRecord(this IFieldInfoDescriptor fieldInfoDescriptor, string fieldString, char nullChar)
        {
            if (fieldString == null)
            {
                return(fieldInfoDescriptor.NullValue ?? null);
            }

            string stringNullRepresentation = new string(nullChar, fieldString.Length);

            if (fieldString == stringNullRepresentation)
            {
                return(fieldInfoDescriptor.NullValue ?? null);
            }

            fieldString = fieldInfoDescriptor.StringTrim(fieldString);
            ConverterBase converterInstance;

            if (string.Empty.Equals(fieldString) && fieldInfoDescriptor.Converter == null)
            {
                if (fieldInfoDescriptor.NullValue != null)
                {
                    fieldString = fieldInfoDescriptor.NullValue.ToString();
                }
                if (string.Empty.Equals(fieldString) && fieldInfoDescriptor.Converter == null)
                {
                    if (fieldInfoDescriptor.Type != null)
                    {
                        converterInstance = ConverterFactory.GetDefaultConverter(fieldInfoDescriptor.Type, fieldInfoDescriptor.ConverterFormat);
                        return(converterInstance == null
                            ? fieldString
                            : converterInstance.StringToField(fieldString));
                    }
                    return(fieldString);
                }
            }

            if (fieldInfoDescriptor.Converter == null && fieldInfoDescriptor.Type == null)
            {
                return(fieldString);
            }

            if (string.IsNullOrWhiteSpace(fieldString) && fieldInfoDescriptor.NullValue != null)
            {
                fieldString = fieldInfoDescriptor.NullValue.ToString();
            }

            converterInstance =
                fieldInfoDescriptor.Converter == null
                ? ConverterFactory.GetDefaultConverter(fieldInfoDescriptor.Type, fieldInfoDescriptor.ConverterFormat)
                : ConverterFactory.GetConverter(fieldInfoDescriptor.Converter, fieldInfoDescriptor.ConverterFormat);

            return(converterInstance == null
                ? fieldString
                : converterInstance.StringToField(fieldString));
        }
Example #3
0
        private static string CreateFieldString(this IFieldInfoDescriptor fieldInfoDescriptor, object fieldValue)
        {
            if (fieldInfoDescriptor.Converter == null)
            {
                if (fieldValue == null)
                {
                    return(string.Empty);
                }
                return(fieldValue.ToString());
            }

            ConverterBase converterInstance =
                ConverterFactory.GetConverter(fieldInfoDescriptor.Converter, fieldInfoDescriptor.ConverterFormat);

            return(converterInstance?.FieldToString(fieldValue) ?? string.Empty);
        }
Example #4
0
        public static string StringTrim(this IFieldInfoDescriptor recordInfo, string value)
        {
            switch (recordInfo.TrimMode)
            {
            case TrimMode.None:
                return(value);

            case TrimMode.Both:
                return(value.Trim());

            case TrimMode.Left:
                return(value.TrimStart());

            case TrimMode.Right:
                return(value.TrimEnd());
            }

            return(value);
        }
Example #5
0
        public static string ResolveType(this IFieldInfoDescriptor fieldDescriptor)
        {
            if (fieldDescriptor.Type == null && fieldDescriptor.Converter == null)
            {
                return("string");
            }

            var converterInstance =
                fieldDescriptor.Converter == null
                    ? ConverterFactory.GetDefaultConverter(fieldDescriptor.Type, fieldDescriptor.ConverterFormat)
                    : ConverterFactory.GetConverter(fieldDescriptor.Converter, fieldDescriptor.ConverterFormat);

            if (converterInstance == null)
            {
                return("string");
            }

            return(converterInstance.FieldType);
        }
Example #6
0
        public static string CreateFieldString(this IFieldInfoDescriptor fieldBuilder, object fieldValue)
        {
            ConverterBase converterInstance = null;

            if (fieldBuilder.Type != null || fieldBuilder.Converter != null)
            {
                converterInstance = fieldBuilder.Converter == null
                ? ConverterFactory.GetDefaultConverter(fieldBuilder.Type, fieldBuilder.ConverterFormat)
                : ConverterFactory.GetConverter(fieldBuilder.Converter, fieldBuilder.ConverterFormat);
            }

            if (converterInstance == null)
            {
                if (fieldValue == null)
                {
                    return(string.Empty);
                }

                return(fieldValue.ToString());
            }

            return(converterInstance.FieldToString(fieldValue) ?? string.Empty);
        }
Example #7
0
 internal static string RecordToString(this IFieldInfoDescriptor fieldInfoDescriptor, object record) =>
 fieldInfoDescriptor.CreateFieldString(record);