public static DateTime SafeGetDateTime(this IDataReader dataReader, string columnName, DateTime defaultValue = default(DateTime))
        {
            ChekArgumentAccuracy(columnName);

            int             columnIndex = GetColumnIndexByName(dataReader, columnName);
            Func <DateTime> func        = () => dataReader.GetDateTime(columnIndex);

            return(DataReaderFunctorExecutor <DateTime> .ExecuteFunction(dataReader, columnIndex, func, defaultValue));
        }
        public static String SafeGetString(this IDataReader dataReader, string columnName, string defaultValue = default(String))
        {
            ChekArgumentAccuracy(columnName);

            int           columnIndex = GetColumnIndexByName(dataReader, columnName);
            Func <String> func        = () => dataReader.GetString(columnIndex);

            return(DataReaderFunctorExecutor <String> .ExecuteFunction(dataReader, columnIndex, func, defaultValue));
        }
        public static Guid SafeGetGuid(this IDataReader dataReader, string columnName, Guid defaultValue = default(Guid))
        {
            ChekArgumentAccuracy(columnName);

            int         columnIndex = GetColumnIndexByName(dataReader, columnName);
            Func <Guid> func        = () => dataReader.GetGuid(columnIndex);

            return(DataReaderFunctorExecutor <Guid> .ExecuteFunction(dataReader, columnIndex, func, defaultValue));
        }
        public static Char SafeGetChar(this IDataReader dataReader, string columnName, char defaultValue = default(Char))
        {
            ChekArgumentAccuracy(columnName);

            int         columnIndex = GetColumnIndexByName(dataReader, columnName);
            Func <Char> func        = () => dataReader.GetChar(columnIndex);

            return(DataReaderFunctorExecutor <Char> .ExecuteFunction(dataReader, columnIndex, func, defaultValue));
        }
        public static Int64 SafeGetInt64(this IDataReader dataReader, string columnName, Int64 defaultValue = default(Int64))
        {
            ChekArgumentAccuracy(columnName);

            int          columnIndex = GetColumnIndexByName(dataReader, columnName);
            Func <Int64> func        = () => dataReader.GetInt64(columnIndex);

            return(DataReaderFunctorExecutor <Int64> .ExecuteFunction(dataReader, columnIndex, func, defaultValue));
        }