Beispiel #1
0
        /// <inheritdoc/>
        public override bool TryConvertToObjectItem(ConvertToObjectItemContext context, out object result, out string errorMessage)
        {
            result       = null;
            errorMessage = string.Empty;

            if (HasRequiredError(context.CsvItem))
            {
                errorMessage = CsvConfig.Current.ValidationMessage.GetRequiredError(context);
                return(false);
            }

            if (string.IsNullOrEmpty(context.CsvItem))
            {
                return(true);
            }

            if (short.TryParse(context.CsvItem, NumberStyles.AllowThousands, NumberFormatInfo.CurrentInfo, out short x))
            {
                result = x;
                return(true);
            }

            errorMessage = CsvConfig.Current.ValidationMessage.GetNumericConvertError(context);
            return(false);
        }
Beispiel #2
0
        /// <inheritdoc/>
        public override bool TryConvertToObjectItem(ConvertToObjectItemContext context, out object result, out string errorMessage)
        {
            result       = null;
            errorMessage = string.Empty;

            if (HasRequiredError(context.CsvItem))
            {
                errorMessage = CsvConfig.Current.ValidationMessage.GetRequiredError(context);
                return(false);
            }

            if (string.IsNullOrEmpty(context.CsvItem))
            {
                return(true);
            }

            var format = context.Property.GetCustomAttribute <CsvFormatAttribute>();

            if (format != null)
            {
                return(TryParseByFormat(context, format, out result, out errorMessage));
            }

            return(TryParse(context, out result, out errorMessage));
        }
Beispiel #3
0
        /// <summary>
        /// <see cref="DateTime"/>への変換を試みます。
        /// </summary>
        /// <param name="context"><see cref="ConvertToObjectItemContext"/>。</param>
        /// <param name="result">変換結果。</param>
        /// <param name="errorMessage">エラーメッセージ。</param>
        /// <returns>変換に成功した場合にtrue。</returns>
        private static bool TryParse(ConvertToObjectItemContext context, out object result, out string errorMessage)
        {
            result       = null;
            errorMessage = string.Empty;
            var dts = new DateTimeString(context.CsvItem);

            if (dts.TryParse(out DateTime dt))
            {
                result = dt;
                return(true);
            }

            errorMessage = CsvConfig.Current.ValidationMessage.GetDateTimeConvertError(context);
            return(false);
        }
Beispiel #4
0
 /// <summary>
 /// CSV項目からオブジェクト項目への変換を試みます。
 /// </summary>
 /// <param name="context"><see cref="ConvertToObjectItemContext"/>。</param>
 /// <param name="result">変換結果。</param>
 /// <param name="errorMessage">エラーメッセージ。</param>
 /// <returns>変換に成功した場合にtrue。</returns>
 public abstract bool TryConvertToObjectItem(ConvertToObjectItemContext context, out object result, out string errorMessage);