/
aprogrammer
/
yessql
Обзор
Документация
Войти
/
aprogrammer
/
yessql
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/YesSql.Core/Data/DapperDataHandlers.cs
90 строк
2 KB
Mike Alhayek
Code Cleanup (#507)
09 ноя 2023, 03:32
Не верифицирован
09 ноя 2023, 03:32
dabecfb
Код
Авторство
О чём код?
using Dapper; using System; using System.Data; namespace YesSql.Data { abstract class DapperTypeHandler<T> : SqlMapper.TypeHandler<T> { public override void SetValue(IDbDataParameter parameter, T value) => parameter.Value = value; } class DateTimeOffsetHandler : DapperTypeHandler<DateTimeOffset> { public override DateTimeOffset Parse(object value) { if (value is null) { return DateTimeOffset.MinValue; } if (value is string s) { return DateTimeOffset.Parse(s); } if (value is DateTime dt) { return dt; } if (value is DateTimeOffset d) { return d; } return DateTimeOffset.MinValue; } } class GuidHandler : DapperTypeHandler<Guid> { public override Guid Parse(object value) { if (value is null) { return Guid.Empty; } if (value is string s) { return Guid.Parse(s); } else if (value is Guid g) { return g; } return Guid.Empty; } } class TimeSpanHandler : DapperTypeHandler<TimeSpan> { public override TimeSpan Parse(object value) { if (value is null) { return TimeSpan.Zero; } if (value is string s) { return TimeSpan.Parse(s); } if (value is long l) { return new TimeSpan(l); } if (value is TimeSpan t) { return t; } return TimeSpan.Zero; } } }