31 lines
808 B
C#
31 lines
808 B
C#
using System;
|
|
using System.Data.Common;
|
|
|
|
namespace AS400API.Infrastructure;
|
|
|
|
public static class DataReaderExtensions
|
|
{
|
|
public static object? GetNormalizedValue(this DbDataReader reader, int ordinal)
|
|
{
|
|
if (reader.IsDBNull(ordinal))
|
|
{
|
|
return null;
|
|
}
|
|
|
|
var value = reader.GetValue(ordinal);
|
|
|
|
if (value is string stringValue)
|
|
{
|
|
var dataTypeName = reader.GetDataTypeName(ordinal)?.Trim();
|
|
if (!string.IsNullOrEmpty(dataTypeName)
|
|
&& dataTypeName.StartsWith("CHAR", StringComparison.OrdinalIgnoreCase)
|
|
&& !dataTypeName.Contains("VARYING", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
return stringValue.TrimEnd();
|
|
}
|
|
}
|
|
|
|
return value;
|
|
}
|
|
}
|