From ce2653db453fe3875231df90f6b338a0d9ff3a69 Mon Sep 17 00:00:00 2001
From: Bram1903 <70259613+Bram1903@users.noreply.github.com>
Date: Thu, 4 May 2023 17:13:07 +0200
Subject: [PATCH 1/6] Added: Npgsql.EntityFrameworkCore.PostgreSQL.NodaTime
Added: SimplerSoftware.EntityFrameworkCore.SqlServer.NodaTime Added: Enabled
the .UseNodaTime option in the DbContextOptionsBuilder
---
.../Extensions/DbContextOptionsBuilderExtensions.cs | 13 ++++++++++---
src/Infrastructure/Infrastructure.csproj | 2 ++
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/Infrastructure/Extensions/DbContextOptionsBuilderExtensions.cs b/src/Infrastructure/Extensions/DbContextOptionsBuilderExtensions.cs
index 398b72c76..44d9b206d 100644
--- a/src/Infrastructure/Extensions/DbContextOptionsBuilderExtensions.cs
+++ b/src/Infrastructure/Extensions/DbContextOptionsBuilderExtensions.cs
@@ -10,12 +10,19 @@ internal static DbContextOptionsBuilder UseDatabase(this DbContextOptionsBuilder
switch (dbProvider.ToLowerInvariant())
{
case DbProviderKeys.Npgsql:
- AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
return builder.UseNpgsql(connectionString,
- e => e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.PostgreSQL"));
+ e =>
+ {
+ e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.PostgreSQL");
+ e.UseNodaTime();
+ });
case DbProviderKeys.SqlServer:
return builder.UseSqlServer(connectionString,
- e => e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.MSSQL"));
+ e =>
+ {
+ e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.MSSQL");
+ e.UseNodaTime();
+ });
case DbProviderKeys.SqLite:
return builder.UseSqlite(connectionString,
e => e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.SqLite"));
diff --git a/src/Infrastructure/Infrastructure.csproj b/src/Infrastructure/Infrastructure.csproj
index f847beae4..89f904f99 100644
--- a/src/Infrastructure/Infrastructure.csproj
+++ b/src/Infrastructure/Infrastructure.csproj
@@ -33,6 +33,7 @@
+
@@ -43,6 +44,7 @@
+
From 506d1f5cd74240371de6401493b20097b197b666 Mon Sep 17 00:00:00 2001
From: Bram1903 <70259613+Bram1903@users.noreply.github.com>
Date: Fri, 5 May 2023 10:34:08 +0200
Subject: [PATCH 2/6] Removed: NodaTime for now
---
src/Application/Features/Loggers/DTOs/LogDto.cs | 2 +-
.../Extensions/DbContextOptionsBuilderExtensions.cs | 13 +++----------
src/Infrastructure/Infrastructure.csproj | 2 --
src/Infrastructure/Services/DateTimeService.cs | 2 +-
4 files changed, 5 insertions(+), 14 deletions(-)
diff --git a/src/Application/Features/Loggers/DTOs/LogDto.cs b/src/Application/Features/Loggers/DTOs/LogDto.cs
index 975856a52..9bcb44fbe 100644
--- a/src/Application/Features/Loggers/DTOs/LogDto.cs
+++ b/src/Application/Features/Loggers/DTOs/LogDto.cs
@@ -22,7 +22,7 @@ public class LogDto : IMapFrom
public bool ShowDetails { get; set; }
[Description("Timestamp")]
- public DateTime TimeStamp { get; set; } = DateTime.Now;
+ public DateTime TimeStamp { get; set; } = DateTime.UtcNow;
[Description("Exception")]
public string? Exception { get; set; }
diff --git a/src/Infrastructure/Extensions/DbContextOptionsBuilderExtensions.cs b/src/Infrastructure/Extensions/DbContextOptionsBuilderExtensions.cs
index 44d9b206d..398b72c76 100644
--- a/src/Infrastructure/Extensions/DbContextOptionsBuilderExtensions.cs
+++ b/src/Infrastructure/Extensions/DbContextOptionsBuilderExtensions.cs
@@ -10,19 +10,12 @@ internal static DbContextOptionsBuilder UseDatabase(this DbContextOptionsBuilder
switch (dbProvider.ToLowerInvariant())
{
case DbProviderKeys.Npgsql:
+ AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
return builder.UseNpgsql(connectionString,
- e =>
- {
- e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.PostgreSQL");
- e.UseNodaTime();
- });
+ e => e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.PostgreSQL"));
case DbProviderKeys.SqlServer:
return builder.UseSqlServer(connectionString,
- e =>
- {
- e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.MSSQL");
- e.UseNodaTime();
- });
+ e => e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.MSSQL"));
case DbProviderKeys.SqLite:
return builder.UseSqlite(connectionString,
e => e.MigrationsAssembly("CleanArchitecture.Blazor.Migrators.SqLite"));
diff --git a/src/Infrastructure/Infrastructure.csproj b/src/Infrastructure/Infrastructure.csproj
index 89f904f99..f847beae4 100644
--- a/src/Infrastructure/Infrastructure.csproj
+++ b/src/Infrastructure/Infrastructure.csproj
@@ -33,7 +33,6 @@
-
@@ -44,7 +43,6 @@
-
diff --git a/src/Infrastructure/Services/DateTimeService.cs b/src/Infrastructure/Services/DateTimeService.cs
index 264eb877f..a3a624393 100644
--- a/src/Infrastructure/Services/DateTimeService.cs
+++ b/src/Infrastructure/Services/DateTimeService.cs
@@ -5,5 +5,5 @@ namespace CleanArchitecture.Blazor.Infrastructure.Services;
public class DateTimeService : IDateTime
{
- public DateTime Now => DateTime.Now;
+ public DateTime Now => DateTime.UtcNow;
}
From bd9cbcddd5af6fd7044744818a1f2f03d9c370db Mon Sep 17 00:00:00 2001
From: Bram1903 <70259613+Bram1903@users.noreply.github.com>
Date: Fri, 5 May 2023 13:17:58 +0200
Subject: [PATCH 3/6] Added: BlazorTime Working on ToLocal on the Logs.razor
---
.editorconfig | 56 +++++++++----------
src/Blazor.Server.UI/Blazor.Server.UI.csproj | 1 +
.../Pages/SystemManagement/Logs.razor | 6 +-
src/Blazor.Server.UI/Pages/_Layout.cshtml | 1 +
src/Blazor.Server.UI/_Imports.razor | 1 +
5 files changed, 36 insertions(+), 29 deletions(-)
diff --git a/.editorconfig b/.editorconfig
index e4951ca47..f91d7643c 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -104,7 +104,7 @@ csharp_style_conditional_delegate_call = true:suggestion
# Modifier preferences
csharp_prefer_static_local_function = true:warning
-csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
+csharp_preferred_modifier_order = public, private, protected, internal, static, extern, new, virtual, abstract, sealed, override, readonly, unsafe, volatile, async:silent
# Code-block preferences
csharp_prefer_braces = true:silent
@@ -255,31 +255,31 @@ dotnet_naming_rule.non_field_members_should_be_pascalcase.style = pascalcase
dotnet_naming_symbols.interfaces.applicable_kinds = interface
dotnet_naming_symbols.interfaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.interfaces.required_modifiers =
+dotnet_naming_symbols.interfaces.required_modifiers =
dotnet_naming_symbols.enums.applicable_kinds = enum
dotnet_naming_symbols.enums.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.enums.required_modifiers =
+dotnet_naming_symbols.enums.required_modifiers =
dotnet_naming_symbols.events.applicable_kinds = event
dotnet_naming_symbols.events.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.events.required_modifiers =
+dotnet_naming_symbols.events.required_modifiers =
dotnet_naming_symbols.methods.applicable_kinds = method
dotnet_naming_symbols.methods.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.methods.required_modifiers =
+dotnet_naming_symbols.methods.required_modifiers =
dotnet_naming_symbols.properties.applicable_kinds = property
dotnet_naming_symbols.properties.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.properties.required_modifiers =
+dotnet_naming_symbols.properties.required_modifiers =
dotnet_naming_symbols.public_fields.applicable_kinds = field
dotnet_naming_symbols.public_fields.applicable_accessibilities = public, internal
-dotnet_naming_symbols.public_fields.required_modifiers =
+dotnet_naming_symbols.public_fields.required_modifiers =
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
-dotnet_naming_symbols.private_fields.required_modifiers =
+dotnet_naming_symbols.private_fields.required_modifiers =
dotnet_naming_symbols.private_static_fields.applicable_kinds = field
dotnet_naming_symbols.private_static_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
@@ -287,15 +287,15 @@ dotnet_naming_symbols.private_static_fields.required_modifiers = static
dotnet_naming_symbols.types_and_namespaces.applicable_kinds = namespace, class, struct, interface, enum
dotnet_naming_symbols.types_and_namespaces.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.types_and_namespaces.required_modifiers =
+dotnet_naming_symbols.types_and_namespaces.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.non_field_members.required_modifiers =
+dotnet_naming_symbols.non_field_members.required_modifiers =
dotnet_naming_symbols.type_parameters.applicable_kinds = namespace
dotnet_naming_symbols.type_parameters.applicable_accessibilities = *
-dotnet_naming_symbols.type_parameters.required_modifiers =
+dotnet_naming_symbols.type_parameters.required_modifiers =
dotnet_naming_symbols.private_constant_fields.applicable_kinds = field
dotnet_naming_symbols.private_constant_fields.applicable_accessibilities = private, protected, protected_internal, private_protected
@@ -303,7 +303,7 @@ dotnet_naming_symbols.private_constant_fields.required_modifiers = const
dotnet_naming_symbols.local_variables.applicable_kinds = local
dotnet_naming_symbols.local_variables.applicable_accessibilities = local
-dotnet_naming_symbols.local_variables.required_modifiers =
+dotnet_naming_symbols.local_variables.required_modifiers =
dotnet_naming_symbols.local_constants.applicable_kinds = local
dotnet_naming_symbols.local_constants.applicable_accessibilities = local
@@ -311,7 +311,7 @@ dotnet_naming_symbols.local_constants.required_modifiers = const
dotnet_naming_symbols.parameters.applicable_kinds = parameter
dotnet_naming_symbols.parameters.applicable_accessibilities = *
-dotnet_naming_symbols.parameters.required_modifiers =
+dotnet_naming_symbols.parameters.required_modifiers =
dotnet_naming_symbols.public_constant_fields.applicable_kinds = field
dotnet_naming_symbols.public_constant_fields.applicable_accessibilities = public, internal
@@ -327,36 +327,36 @@ dotnet_naming_symbols.private_static_readonly_fields.required_modifiers = readon
dotnet_naming_symbols.local_functions.applicable_kinds = local_function
dotnet_naming_symbols.local_functions.applicable_accessibilities = *
-dotnet_naming_symbols.local_functions.required_modifiers =
+dotnet_naming_symbols.local_functions.required_modifiers =
# Naming styles
-dotnet_naming_style.pascalcase.required_prefix =
-dotnet_naming_style.pascalcase.required_suffix =
-dotnet_naming_style.pascalcase.word_separator =
+dotnet_naming_style.pascalcase.required_prefix =
+dotnet_naming_style.pascalcase.required_suffix =
+dotnet_naming_style.pascalcase.word_separator =
dotnet_naming_style.pascalcase.capitalization = pascal_case
dotnet_naming_style.ipascalcase.required_prefix = I
-dotnet_naming_style.ipascalcase.required_suffix =
-dotnet_naming_style.ipascalcase.word_separator =
+dotnet_naming_style.ipascalcase.required_suffix =
+dotnet_naming_style.ipascalcase.word_separator =
dotnet_naming_style.ipascalcase.capitalization = pascal_case
dotnet_naming_style.tpascalcase.required_prefix = T
-dotnet_naming_style.tpascalcase.required_suffix =
-dotnet_naming_style.tpascalcase.word_separator =
+dotnet_naming_style.tpascalcase.required_suffix =
+dotnet_naming_style.tpascalcase.word_separator =
dotnet_naming_style.tpascalcase.capitalization = pascal_case
dotnet_naming_style._camelcase.required_prefix = _
-dotnet_naming_style._camelcase.required_suffix =
-dotnet_naming_style._camelcase.word_separator =
+dotnet_naming_style._camelcase.required_suffix =
+dotnet_naming_style._camelcase.word_separator =
dotnet_naming_style._camelcase.capitalization = camel_case
-dotnet_naming_style.camelcase.required_prefix =
-dotnet_naming_style.camelcase.required_suffix =
-dotnet_naming_style.camelcase.word_separator =
+dotnet_naming_style.camelcase.required_prefix =
+dotnet_naming_style.camelcase.required_suffix =
+dotnet_naming_style.camelcase.word_separator =
dotnet_naming_style.camelcase.capitalization = camel_case
dotnet_naming_style.s_camelcase.required_prefix = s_
-dotnet_naming_style.s_camelcase.required_suffix =
-dotnet_naming_style.s_camelcase.word_separator =
+dotnet_naming_style.s_camelcase.required_suffix =
+dotnet_naming_style.s_camelcase.word_separator =
dotnet_naming_style.s_camelcase.capitalization = camel_case
diff --git a/src/Blazor.Server.UI/Blazor.Server.UI.csproj b/src/Blazor.Server.UI/Blazor.Server.UI.csproj
index 8c0320b1c..bb851e3a1 100644
--- a/src/Blazor.Server.UI/Blazor.Server.UI.csproj
+++ b/src/Blazor.Server.UI/Blazor.Server.UI.csproj
@@ -13,6 +13,7 @@
+
diff --git a/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor b/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
index a6cdc59c3..103fd9835 100644
--- a/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
+++ b/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
@@ -85,7 +85,11 @@
-
+
+
+
+
+
@switch (context.Item.Level)
diff --git a/src/Blazor.Server.UI/Pages/_Layout.cshtml b/src/Blazor.Server.UI/Pages/_Layout.cshtml
index b34dbd0f4..e014f8b8c 100644
--- a/src/Blazor.Server.UI/Pages/_Layout.cshtml
+++ b/src/Blazor.Server.UI/Pages/_Layout.cshtml
@@ -100,6 +100,7 @@
+
diff --git a/src/Blazor.Server.UI/_Imports.razor b/src/Blazor.Server.UI/_Imports.razor
index 840e307c2..fdf4123ed 100644
--- a/src/Blazor.Server.UI/_Imports.razor
+++ b/src/Blazor.Server.UI/_Imports.razor
@@ -13,6 +13,7 @@
@using Blazor.Server.UI
@using Blazor.Server.UI.Shared
@using MudBlazor
+@using BlazorTime
@using MediatR
@using Fluxor
@using AutoMapper
From 05873741d6060a37ce0a61c2fea02c0616821198 Mon Sep 17 00:00:00 2001
From: Bram1903 <70259613+Bram1903@users.noreply.github.com>
Date: Fri, 5 May 2023 13:48:41 +0200
Subject: [PATCH 4/6] Fixed: Date Formatting
---
src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor b/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
index 103fd9835..68f6302be 100644
--- a/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
+++ b/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
@@ -87,7 +87,7 @@
-
+
From c557aa4d61c2f491e2bdaaaa9302bb0a12a92e35 Mon Sep 17 00:00:00 2001
From: Bram1903 <70259613+Bram1903@users.noreply.github.com>
Date: Fri, 5 May 2023 14:38:08 +0200
Subject: [PATCH 5/6] Fixed: Datetime converting
---
src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor b/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
index 68f6302be..b555dcb9b 100644
--- a/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
+++ b/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
@@ -87,7 +87,7 @@
-
+
From 2f1c691fe01063aa820a6db0251b3695511f4009 Mon Sep 17 00:00:00 2001
From: "hualin.zhu"
Date: Sat, 6 May 2023 07:18:30 +0800
Subject: [PATCH 6/6] Update Logs.razor
---
src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor b/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
index b555dcb9b..c01862aae 100644
--- a/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
+++ b/src/Blazor.Server.UI/Pages/SystemManagement/Logs.razor
@@ -87,7 +87,7 @@
-
+