aboutsummaryrefslogtreecommitdiff
path: root/Timeline/Entities/UtcDateAnnotation.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-10-31 00:42:06 +0800
committerGitHub <noreply@github.com>2020-10-31 00:42:06 +0800
commita3c97f6fb6313da2e8c0fac0b4c08f2ef4265d0f (patch)
treeee006874b0c93e9bfc76f141a092a8b9585a1f95 /Timeline/Entities/UtcDateAnnotation.cs
parent0c4caaebe2480e77918d5d7df234f0edaeab74ba (diff)
parent7ce0846d9ec968da3ea4f7ebcc6db26db8e49089 (diff)
downloadtimeline-a3c97f6fb6313da2e8c0fac0b4c08f2ef4265d0f.tar.gz
timeline-a3c97f6fb6313da2e8c0fac0b4c08f2ef4265d0f.tar.bz2
timeline-a3c97f6fb6313da2e8c0fac0b4c08f2ef4265d0f.zip
Merge pull request #161 from crupest/upgrade
Upgrade packages and split front end 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);
- }
- }
- }
- }
- }
-}