using System; using System.Data; using Dapper; namespace ErsatzTV.Infrastructure.Data { public abstract class SqliteTypeHandler : SqlMapper.TypeHandler { // Parameters are converted by Microsoft.Data.Sqlite public override void SetValue(IDbDataParameter parameter, T value) => parameter.Value = value; } public class DateTimeOffsetHandler : SqliteTypeHandler { public override DateTimeOffset Parse(object value) => DateTimeOffset.Parse((string) value); } public class GuidHandler : SqliteTypeHandler { public override Guid Parse(object value) => Guid.Parse((string) value); } public class TimeSpanHandler : SqliteTypeHandler { public override TimeSpan Parse(object value) => TimeSpan.Parse((string) value); } }