@@ -68,8 +68,7 @@ public static void ConfigureServices(this WebApplicationBuilder builder)
68
68
builder.Services.AddBoundaryServices(Assembly.GetExecutingAssembly());
69
69
70
70
builder.Services
71
- .AddMvc(options => options.Filters.Add<ErrorHandlerFilterAttribute>())
72
- .AddJsonOptions(opt => opt.JsonSerializerOptions.AddDateOnlyConverters());
71
+ .AddMvc(options => options.Filters.Add<ErrorHandlerFilterAttribute>());
73
72
74
73
if(builder.Environment.EnvironmentName != Consts.Testing.FunctionalTestingEnvName)
75
74
{{
@@ -105,62 +104,6 @@ private static void AddBoundaryServices(this IServiceCollection services, params
105
104
}}
106
105
}}
107
106
}}
108
- }}
109
-
110
- // TODO these will be baked into System.Text.Json in .NET 7
111
- public static class DateOnlyConverterExtensions
112
- {{
113
- public static void AddDateOnlyConverters(this JsonSerializerOptions options)
114
- {{
115
- options.Converters.Add(new DateOnlyConverter());
116
- options.Converters.Add(new DateOnlyNullableConverter());
117
- }}
118
- }}
119
-
120
- public class DateOnlyConverter : JsonConverter<DateOnly>
121
- {{
122
- public override DateOnly Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
123
- {{
124
- if (reader.TryGetDateTime(out var dt))
125
- {{
126
- return DateOnly.FromDateTime(dt);
127
- }};
128
- var value = reader.GetString();
129
- if (value == null)
130
- {{
131
- return default;
132
- }}
133
- var match = new Regex(""^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)(T|\\s|\\z)"").Match(value);
134
- return match.Success
135
- ? new DateOnly(int.Parse(match.Groups[1].Value), int.Parse(match.Groups[2].Value), int.Parse(match.Groups[3].Value))
136
- : default;
137
- }}
138
-
139
- public override void Write(Utf8JsonWriter writer, DateOnly value, JsonSerializerOptions options)
140
- => writer.WriteStringValue(value.ToString(""yyyy-MM-dd""));
141
- }}
142
-
143
- public class DateOnlyNullableConverter : JsonConverter<DateOnly?>
144
- {{
145
- public override DateOnly? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
146
- {{
147
- if (reader.TryGetDateTime(out var dt))
148
- {{
149
- return DateOnly.FromDateTime(dt);
150
- }};
151
- var value = reader.GetString();
152
- if (value == null)
153
- {{
154
- return default;
155
- }}
156
- var match = new Regex(""^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)(T|\\s|\\z)"").Match(value);
157
- return match.Success
158
- ? new DateOnly(int.Parse(match.Groups[1].Value), int.Parse(match.Groups[2].Value), int.Parse(match.Groups[3].Value))
159
- : default;
160
- }}
161
-
162
- public override void Write(Utf8JsonWriter writer, DateOnly? value, JsonSerializerOptions options)
163
- => writer.WriteStringValue(value?.ToString(""yyyy-MM-dd""));
164
107
}}" ;
165
108
}
166
109
}
0 commit comments