31 lines
885 B
C#
31 lines
885 B
C#
using System.Data;
|
|
using System.Globalization;
|
|
using Dapper;
|
|
|
|
namespace ErsatzTV.Infrastructure.Sqlite.Data;
|
|
|
|
public abstract class SqliteTypeHandler<T> : SqlMapper.TypeHandler<T>
|
|
{
|
|
// Parameters are converted by Microsoft.Data.Sqlite
|
|
public override void SetValue(IDbDataParameter parameter, T? value)
|
|
=> parameter.Value = value;
|
|
}
|
|
|
|
public class DateTimeOffsetHandler : SqliteTypeHandler<DateTimeOffset>
|
|
{
|
|
public override DateTimeOffset Parse(object value)
|
|
=> DateTimeOffset.Parse((string)value, CultureInfo.InvariantCulture);
|
|
}
|
|
|
|
public class GuidHandler : SqliteTypeHandler<Guid>
|
|
{
|
|
public override Guid Parse(object value)
|
|
=> Guid.Parse((string)value);
|
|
}
|
|
|
|
public class TimeSpanHandler : SqliteTypeHandler<TimeSpan>
|
|
{
|
|
public override TimeSpan Parse(object value)
|
|
=> TimeSpan.Parse((string)value, CultureInfo.InvariantCulture);
|
|
}
|