From ac769e656b122ff569c3f1534701b71e00fed586 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 27 Oct 2020 19:21:35 +0800 Subject: Split front and back end. --- Timeline/Entities/UtcDateAnnotation.cs | 44 ---------------------------------- 1 file changed, 44 deletions(-) delete mode 100644 Timeline/Entities/UtcDateAnnotation.cs (limited to 'Timeline/Entities/UtcDateAnnotation.cs') 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 UtcConverter = - new ValueConverter(v => v, v => DateTime.SpecifyKind(v, DateTimeKind.Utc)); - - public static PropertyBuilder IsUtc(this PropertyBuilder builder, bool isUtc = true) => - builder.HasAnnotation(IsUtcAnnotation, isUtc); - - public static bool IsUtc(this IMutableProperty property) => - ((bool?)property.FindAnnotation(IsUtcAnnotation)?.Value) ?? true; - - /// - /// Make sure this is called after configuring all your entities. - /// - 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); - } - } - } - } - } -} -- cgit v1.2.3