namespace Xylem.Common.Service.MeterProcessState.Extensions { using System; using System.Data.SqlClient; using System.Threading.Tasks; public static class SqlDataReaderExtensions { public static async Task GetIntAsync(this SqlDataReader sqlDataReader, int index) { if (await sqlDataReader.IsDBNullAsync(index)) { return default(int); } return sqlDataReader.GetInt32(index); } public static async Task GetLongAsync(this SqlDataReader sqlDataReader, int index) { if (await sqlDataReader.IsDBNullAsync(index)) { return default(long); } return sqlDataReader.GetInt64(index); } public static async Task GetDateTimeAsync(this SqlDataReader sqlDataReader, int index) { if (await sqlDataReader.IsDBNullAsync(index)) { return default(DateTime); } return sqlDataReader.GetSqlDateTime(index).Value; } public static async Task GetFloatAsync(this SqlDataReader sqlDataReader, int index) { if (await sqlDataReader.IsDBNullAsync(index)) { return default(float); } return sqlDataReader.GetFloat(index); } public static async Task GetDoubleAsync(this SqlDataReader sqlDataReader, int index) { if (await sqlDataReader.IsDBNullAsync(index)) { return default(double); } return sqlDataReader.GetDouble(index); } public static async Task GetBoolAsync(this SqlDataReader sqlDataReader, int index) { if (await sqlDataReader.IsDBNullAsync(index)) { return default(bool); } return sqlDataReader.GetBoolean(index); } } }