Skip to content

Commit d3be247

Browse files
committed
Fix dapper date only handling
1 parent b9f018b commit d3be247

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

api/src/Vote.Monitor.Api/Program.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,9 @@
253253
SqlMapper.AddTypeHandler(typeof(TranslatedString), new JsonToObjectConverter<TranslatedString>());
254254
SqlMapper.AddTypeHandler(typeof(LanguagesTranslationStatus), new JsonToObjectConverter<LanguagesTranslationStatus>());
255255

256-
#endregion
257-
256+
SqlMapper.AddTypeHandler(typeof(DateOnly), new DapperSqlDateOnlyTypeHandler());
258257

258+
#endregion
259259

260260
app.UseSwaggerGen(
261261
cfg =>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using System.Data;
2+
using Dapper;
3+
4+
namespace Vote.Monitor.Core.Converters;
5+
6+
public class DapperSqlDateOnlyTypeHandler : SqlMapper.TypeHandler<DateOnly>
7+
{
8+
public override void SetValue(IDbDataParameter parameter, DateOnly date)
9+
=> parameter.Value = date.ToDateTime(new TimeOnly(0, 0));
10+
11+
public override DateOnly Parse(object value)
12+
=> DateOnly.FromDateTime((DateTime)value);
13+
}

api/src/Vote.Monitor.Core/Converters/JsonToObjectConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ public override void SetValue(System.Data.IDbDataParameter parameter, T value)
1515
{
1616
parameter.Value = JsonSerializer.Serialize(value);
1717
}
18-
}
18+
}

0 commit comments

Comments
 (0)