aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Entities/UtcDateAnnotation.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-10-27 19:21:35 +0800
committercrupest <crupest@outlook.com>2020-10-27 19:21:35 +0800
commitac769e656b122ff569c3f1534701b71e00fed586 (patch)
tree72966645ff1e25139d3995262e1c4349f2c14733 /Timeline/Entities/UtcDateAnnotation.cs
parent14e5848c23c643cea9b5d709770747d98c3d75e2 (diff)
downloadtimeline-ac769e656b122ff569c3f1534701b71e00fed586.tar.gz
timeline-ac769e656b122ff569c3f1534701b71e00fed586.tar.bz2
timeline-ac769e656b122ff569c3f1534701b71e00fed586.zip
Split front and back end.
Diffstat (limited to 'Timeline/Entities/UtcDateAnnotation.cs')
-rw-r--r--Timeline/Entities/UtcDateAnnotation.cs44
1 files changed, 0 insertions, 44 deletions
diff --git a/Timeline/Entities/UtcDateAnnotation.cs b/Timeline/Entities/UtcDateAnnotation.cs
deleted file mode 100644
index 6600e701..00000000
--- a/Timeline/Entities/UtcDateAnnotation.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Metadata;
-using Microsoft.EntityFrameworkCore.Metadata.Builders;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using System;
-
-namespace Timeline.Entities
-{
- // Copied from https://github.com/dotnet/efcore/issues/4711#issuecomment-589842988
- public static class UtcDateAnnotation
- {
- private const string IsUtcAnnotation = "IsUtc";
- private static readonly ValueConverter<DateTime, DateTime> UtcConverter =
- new ValueConverter<DateTime, DateTime>(v => v, v => DateTime.SpecifyKind(v, DateTimeKind.Utc));
-
- public static PropertyBuilder<TProperty> IsUtc<TProperty>(this PropertyBuilder<TProperty> builder, bool isUtc = true) =>
- builder.HasAnnotation(IsUtcAnnotation, isUtc);
-
- public static bool IsUtc(this IMutableProperty property) =>
- ((bool?)property.FindAnnotation(IsUtcAnnotation)?.Value) ?? true;
-
- /// <summary>
- /// Make sure this is called after configuring all your entities.
- /// </summary>
- public static void ApplyUtcDateTimeConverter(this ModelBuilder builder)
- {
- foreach (var entityType in builder.Model.GetEntityTypes())
- {
- foreach (var property in entityType.GetProperties())
- {
- if (!property.IsUtc())
- {
- continue;
- }
-
- if (property.ClrType == typeof(DateTime))
- {
- property.SetValueConverter(UtcConverter);
- }
- }
- }
- }
- }
-}