/// <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); }
/// <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)); }
/// <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); }
/// <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);