From 8bad103d48cc915bd6337043fc593bc638dc32a8 Mon Sep 17 00:00:00 2001 From: Yaser Moradi Date: Mon, 12 Aug 2024 18:11:10 +0200 Subject: [PATCH] feat(templates): improve color handling in Boilerplate #8276 (#8285) --- .github/workflows/todo-sample.cd.yml | 10 ++++++++ .../Boilerplate.Client.Core/Scripts/app.ts | 4 ++-- .../Styles/ThemeColors.cs | 8 +++++++ .../Boilerplate.Client.Core/Styles/app.scss | 5 ++++ .../Boilerplate.Client.Maui/MainPage.xaml | 16 +++++-------- .../Boilerplate.Client.Maui/MauiProgram.cs | 15 ++++++------ .../Android/Resources/values/colors.xml | 3 --- .../Services/MauiDeviceCoordinator.cs | 4 +++- .../wwwroot/index.html | 7 ++---- .../Boilerplate.Client.Web/wwwroot/index.html | 2 +- .../wwwroot/manifest.json | 2 +- .../Boilerplate.Client.Windows/App.xaml | 8 ++++++- .../Boilerplate.Client.Windows/App.xaml.cs | 22 +++++++++++++++++- .../Boilerplate.Client.Windows.csproj | 4 ++++ .../MainWindow.xaml | 3 ++- .../MainWindow.xaml.cs | 17 +++++++------- .../Boilerplate.Client.Windows/Program.cs | 3 +-- .../Resources/SplashScreen.png | Bin 0 -> 11498 bytes .../Components/EmailTokenTemplate.razor | 2 +- .../Components/SocialSignedInPage.razor | 4 ++-- .../Identity/UserConfiguration.cs | 4 ++-- .../Product/ProductConfiguration.cs | 2 +- .../Services/AppSecureJwtDataFormat.cs | 2 +- .../src/Shared/Enums/EmailTemplate.cs | 8 ------- 24 files changed, 97 insertions(+), 58 deletions(-) create mode 100644 src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Styles/ThemeColors.cs create mode 100644 src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Resources/SplashScreen.png delete mode 100644 src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Enums/EmailTemplate.cs diff --git a/.github/workflows/todo-sample.cd.yml b/.github/workflows/todo-sample.cd.yml index ad5682e49c..9a12fedc2e 100644 --- a/.github/workflows/todo-sample.cd.yml +++ b/.github/workflows/todo-sample.cd.yml @@ -149,6 +149,16 @@ jobs: - name: Set app center secret run: (Get-Content TodoSample\src\Client\TodoSample.Client.Windows\Program.cs) -Replace 'appCenterSecret = null;', 'appCenterSecret = "39f576f2-7c16-4990-af3f-7b70509d41e2";' | Out-File -Encoding utf8 TodoSample\src\Client\TodoSample.Client.Windows\Program.cs shell: pwsh + + - name: Delete App Splash Screen + run: rm TodoSample/src/Client/TodoSample.Client.Windows/Resources/SplashScreen.png + + - name: Extract App Splash Screen from env + uses: timheuer/base64-to-file@v1.2 + with: + fileDir: './TodoSample/src/Client/TodoSample.Client.Windows/Resources/' + fileName: 'SplashScreen.png' + encodedString: ${{ vars.TODO_WPF_SPLASH_SCREEN }} - name: Generate CSS/JS files run: dotnet build TodoSample\src\Client\TodoSample.Client.Core\TodoSample.Client.Core.csproj -t:BeforeBuildTasks -p:Version="${{ vars.APPLICATION_DISPLAY_VERSION}}" --no-restore -c Release diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Scripts/app.ts b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Scripts/app.ts index 2a14291a63..f009a5f682 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Scripts/app.ts +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Scripts/app.ts @@ -17,11 +17,11 @@ BitTheme.init({ if (newTheme === 'dark') { document.body.classList.add('theme-dark'); document.body.classList.remove('theme-light'); - document.querySelector("meta[name=theme-color]")!.setAttribute('content', '#0d1117'); } else { document.body.classList.add('theme-light'); document.body.classList.remove('theme-dark'); - document.querySelector("meta[name=theme-color]")!.setAttribute('content', '#ffffff'); } + const primaryBgColor = getComputedStyle(document.documentElement).getPropertyValue('--bit-clr-bg-pri'); + document.querySelector("meta[name=theme-color]")!.setAttribute('content', primaryBgColor); } }); diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Styles/ThemeColors.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Styles/ThemeColors.cs new file mode 100644 index 0000000000..982f092730 --- /dev/null +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Styles/ThemeColors.cs @@ -0,0 +1,8 @@ +namespace Boilerplate.Client.Core.Styles; + +public class ThemeColors +{ + public static readonly string PrimaryDarkBgColor = "#000000"; + public static readonly string PrimaryLightBgColor = "#FFFFFF"; + // In case you need to change the background color, make sure to also update app.scss's --bit-clr-bg-pri accordingly. +} diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Styles/app.scss b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Styles/app.scss index 097e2078cd..eb84cab246 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Styles/app.scss +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Styles/app.scss @@ -2,6 +2,11 @@ --bit-status-bar-height: 0px; } +:root[bit-theme="dark"] { + --bit-clr-bg-pri: #000000; + // In case you need to change the background color, make sure to also update ThemeColors.cs's PrimaryDarkBgColor accordingly. +} + * { box-sizing: border-box; font-family: "Segoe UI"; diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MainPage.xaml b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MainPage.xaml index 8c7e4e5b48..6947f39d3a 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MainPage.xaml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MainPage.xaml @@ -4,17 +4,13 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:b="clr-namespace:Microsoft.AspNetCore.Components.WebView.Maui;assembly=Microsoft.AspNetCore.Components.WebView.Maui" xmlns:core="clr-namespace:Boilerplate.Client.Core;assembly=Boilerplate.Client.Core" - BackgroundColor="{AppThemeBinding Light={OnPlatform Android=#0D2960, - Default=#ffffff}, - Dark={OnPlatform Android=#0D2960, - Default=#000000}}"> - + xmlns:themeColors="clr-namespace:Boilerplate.Client.Core.Styles;assembly=Boilerplate.Client.Core" + BackgroundColor="{AppThemeBinding Light={x:Static themeColors:ThemeColors.PrimaryLightBgColor}, + Dark={x:Static themeColors:ThemeColors.PrimaryDarkBgColor}}"> diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs index 9c839490e9..4ae4dd3a96 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/MauiProgram.cs @@ -3,7 +3,9 @@ using Maui.InAppReviews; using Maui.Android.InAppUpdates; using Microsoft.Maui.LifecycleEvents; -using Boilerplate.Client.Core; +using Boilerplate.Client.Core.Styles; +using Boilerplate.Client.Maui.Services; +using Microsoft.Maui.Platform; #if iOS || Mac using UIKit; using WebKit; @@ -55,7 +57,7 @@ bool HandleAppLink(NSUserActivity? userActivity) { var url = $"{userActivity.WebPageUrl.Path}?{userActivity.WebPageUrl.Query}"; - _ = Routes.OpenUniversalLink(url); + _ = Core.Routes.OpenUniversalLink(url); return true; } @@ -94,11 +96,10 @@ private static void SetupBlazorWebView() BlazorWebViewHandler.BlazorWebViewMapper.AppendToMapping("CustomBlazorWebViewMapper", static (handler, view) => { var webView = handler.PlatformView; + var webViewBackgroundColor = AppInfo.Current.RequestedTheme == AppTheme.Dark ? + ThemeColors.PrimaryDarkBgColor : ThemeColors.PrimaryLightBgColor; #if Windows - if (AppInfo.Current.RequestedTheme == AppTheme.Dark) - { - webView.DefaultBackgroundColor = Microsoft.UI.Colors.Black; - } + webView.DefaultBackgroundColor = Color.FromArgb(webViewBackgroundColor).ToWindowsColor(); if (AppEnvironment.IsDev() is false) { @@ -132,7 +133,7 @@ private static void SetupBlazorWebView() } } #elif Android - webView.SetBackgroundColor(Android.Graphics.Color.Transparent); + webView.SetBackgroundColor(Android.Graphics.Color.ParseColor(webViewBackgroundColor)); webView.OverScrollMode = Android.Views.OverScrollMode.Never; diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Platforms/Android/Resources/values/colors.xml b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Platforms/Android/Resources/values/colors.xml index ac84613001..55344e5192 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Platforms/Android/Resources/values/colors.xml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Platforms/Android/Resources/values/colors.xml @@ -1,6 +1,3 @@ - #0D2960 - #0D2960 - #0D2960 \ No newline at end of file diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Services/MauiDeviceCoordinator.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Services/MauiDeviceCoordinator.cs index 4c851d9c4c..76d97f865f 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Services/MauiDeviceCoordinator.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Services/MauiDeviceCoordinator.cs @@ -1,4 +1,6 @@ //-:cnd:noEmit +using Boilerplate.Client.Core.Styles; + namespace Boilerplate.Client.Maui.Services; /// @@ -36,7 +38,7 @@ public async Task ApplyTheme(bool isDark) window!.DecorView!.SystemUiFlags &= ~Android.Views.SystemUiFlags.LightStatusBar; } - window.SetStatusBarColor(isDark ? Android.Graphics.Color.ParseColor("#0D1117") : Android.Graphics.Color.White); + window.SetStatusBarColor(Android.Graphics.Color.ParseColor(isDark ? ThemeColors.PrimaryDarkBgColor : ThemeColors.PrimaryLightBgColor)); #elif IOS var statusBarStyle = isDark ? UIKit.UIStatusBarStyle.LightContent : UIKit.UIStatusBarStyle.DarkContent; await Device.InvokeOnMainThreadAsync(() => diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html index 22f0c3096b..adae667121 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html @@ -34,9 +34,6 @@ - -
+ +
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/index.html b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/index.html index 4549235e63..99e7826a74 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/index.html +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/index.html @@ -24,7 +24,7 @@ - + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/manifest.json b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/manifest.json index 6da1123134..43292d97a5 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/manifest.json +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/manifest.json @@ -9,7 +9,7 @@ "theme_color": "#2EA3FF", "related_applications": [], "name": "bit Boilerplate", - "background_color": "#0D1117", + "background_color": "#0D2960", "short_name": "bit Boilerplate", "prefer_related_applications": false, "display_override": [ "window-controls-overlay" ], diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/App.xaml b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/App.xaml index 270ab536cb..0718cfd462 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/App.xaml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/App.xaml @@ -5,4 +5,10 @@ DispatcherUnhandledException="App_DispatcherUnhandledException" Exit="App_Exit" Startup="App_Startup" - StartupUri="MainWindow.xaml" /> + StartupUri="MainWindow.xaml"> + + + #0D2960 + + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/App.xaml.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/App.xaml.cs index 312b689940..184f10ccd6 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/App.xaml.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/App.xaml.cs @@ -3,11 +3,31 @@ using System.Windows; using System.Text.Json; using System.Collections; +using Microsoft.Win32; +using System.Windows.Media; +using Boilerplate.Client.Core.Styles; namespace Boilerplate.Client.Windows; public partial class App { + public App() + { + InitializeComponent(); + + var splash = new SplashScreen(typeof(App).Assembly, @"Resources\SplashScreen.png"); + splash.Show(autoClose: true, topMost: true); + + Resources["PrimaryBgColor"] = new BrushConverter().ConvertFrom(IsDarkTheme() ? ThemeColors.PrimaryDarkBgColor : ThemeColors.PrimaryLightBgColor); + } + + private static bool IsDarkTheme() + { + using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize"); + var value = key?.GetValue("AppsUseLightTheme"); + return value is int i && i == 0; + } + const string WindowsStorageFilename = "windows.storage.json"; private void App_Startup(object sender, StartupEventArgs e) @@ -38,7 +58,7 @@ private void App_DispatcherUnhandledException(object sender, System.Windows.Thre { try { - ((MainWindow)MainWindow).BlazorWebView.Services.GetRequiredService().Handle(e.Exception); + ((MainWindow)MainWindow).AppWebView.Services.GetRequiredService().Handle(e.Exception); } catch { } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj index c969b30b77..215981ef1d 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj @@ -56,6 +56,10 @@ + + + + diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/MainWindow.xaml b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/MainWindow.xaml index a717749574..e8438e3504 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/MainWindow.xaml +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/MainWindow.xaml @@ -7,11 +7,12 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Title="Boilerplate" + Background="{DynamicResource PrimaryBgColor}" WindowState="Maximized" mc:Ignorable="d"> diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/MainWindow.xaml.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/MainWindow.xaml.cs index a1f9631a3b..7a336a070b 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/MainWindow.xaml.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/MainWindow.xaml.cs @@ -10,28 +10,29 @@ public MainWindow() var services = new ServiceCollection(); services.ConfigureServices(); InitializeComponent(); - BlazorWebView.Services = services.BuildServiceProvider(); + AppWebView.Services = services.BuildServiceProvider(); if (CultureInfoManager.MultilingualEnabled) { - BlazorWebView.Services.GetRequiredService().SetCurrentCulture(App.Current.Properties["Culture"]?.ToString() ?? CultureInfo.CurrentUICulture.Name); + AppWebView.Services.GetRequiredService().SetCurrentCulture(App.Current.Properties["Culture"]?.ToString() ?? CultureInfo.CurrentUICulture.Name); } - BlazorWebView.Services.GetRequiredService().Subscribe(PubSubMessages.CULTURE_CHANGED, async culture => + AppWebView.Services.GetRequiredService().Subscribe(PubSubMessages.CULTURE_CHANGED, async culture => { App.Current.Shutdown(); Application.Restart(); }); - BlazorWebView.Loaded += async delegate + AppWebView.Loaded += async delegate { - await BlazorWebView.WebView.EnsureCoreWebView2Async(); - var settings = BlazorWebView.WebView.CoreWebView2.Settings; + AppWebView.WebView.DefaultBackgroundColor = ColorTranslator.FromHtml(Background.ToString()); + await AppWebView.WebView.EnsureCoreWebView2Async(); + var settings = AppWebView.WebView.CoreWebView2.Settings; if (AppEnvironment.IsDev() is false) { settings.IsZoomControlEnabled = false; settings.AreBrowserAcceleratorKeysEnabled = false; } - BlazorWebView.WebView.NavigationCompleted += async delegate + AppWebView.WebView.NavigationCompleted += async delegate { - await BlazorWebView.WebView.ExecuteScriptAsync("Blazor.start()"); + await AppWebView.WebView.ExecuteScriptAsync("Blazor.start()"); }; }; } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs index b1c1485830..93d598b664 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Program.cs @@ -22,12 +22,11 @@ public static void Main(string[] args) // https://github.com/velopack/velopack VelopackApp.Build().Run(); var application = new App(); - application.InitializeComponent(); Task.Run(async () => { try { - var services = await App.Current.Dispatcher.InvokeAsync(() => ((MainWindow)App.Current.MainWindow).BlazorWebView.Services); + var services = await App.Current.Dispatcher.InvokeAsync(() => ((MainWindow)App.Current.MainWindow).AppWebView.Services); var windowsUpdateSettings = services.GetRequiredService>().Value; if (windowsUpdateSettings?.FilesUrl is null) { diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Resources/SplashScreen.png b/src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Resources/SplashScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..3caa371185ce8217fc612c29734b2c95e2bc746c GIT binary patch literal 11498 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 literal 0 HcmV?d00001 diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Components/EmailTokenTemplate.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Components/EmailTokenTemplate.razor index 8d6cfa66c2..e70c6d0dc6 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Components/EmailTokenTemplate.razor +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Components/EmailTokenTemplate.razor @@ -11,7 +11,7 @@ - @EmailLocalizer[nameof(EmailStrings.ConfirmationEmailSubject), Model.Token] + @EmailLocalizer[nameof(EmailStrings.ConfirmationEmailSubject), Model.Token!]
diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Components/SocialSignedInPage.razor b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Components/SocialSignedInPage.razor index c9e8a0366f..2259a756fd 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Components/SocialSignedInPage.razor +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Components/SocialSignedInPage.razor @@ -29,8 +29,8 @@ @@media (prefers-color-scheme: dark) { body { - color: #e8e8e8; - background: #161b22; + color: #E8E8E8; + background: #161B22; } } diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Identity/UserConfiguration.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Identity/UserConfiguration.cs index 3c0ed5298d..25c050988b 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Identity/UserConfiguration.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Identity/UserConfiguration.cs @@ -17,13 +17,13 @@ public void Configure(EntityTypeBuilder builder) EmailConfirmed = true, LockoutEnabled = true, Gender = Gender.Other, - BirthDate = new DateTime(2023, 1, 1), + BirthDate = new DateTimeOffset(new DateOnly(2023, 1, 1), default, default), FullName = "Boilerplate test account", UserName = userName, NormalizedUserName = userName.ToUpperInvariant(), Email = email, NormalizedEmail = email.ToUpperInvariant(), - EmailTokenRequestedOn = new DateTime(2023,1,1), + EmailTokenRequestedOn = new DateTimeOffset(new DateOnly(2023, 1, 1), default, default), PhoneNumber = "+31684207362", PhoneNumberConfirmed = true, SecurityStamp = "959ff4a9-4b07-4cc1-8141-c5fc033daf83", diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Product/ProductConfiguration.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Product/ProductConfiguration.cs index 15c0f460b1..c81c801f04 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Product/ProductConfiguration.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Configurations/Product/ProductConfiguration.cs @@ -6,7 +6,7 @@ public class ProductConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { - DateTime baseDate = DateTime.Parse("2022-07-12"); + DateTimeOffset baseDate = DateTimeOffset.Parse("2022-07-12", styles: DateTimeStyles.AssumeUniversal); builder.HasData( new() { Id = Guid.Parse("9a59dda2-7b12-4cc1-9658-d2586eef91d4"), Name = "Mustang", Price = 27155, Description = "The Ford Mustang is ranked #1 in Sports Cars", CreatedOn = baseDate.AddDays(-10), CategoryId = Guid.Parse("31d78bd0-0b4f-4e87-b02f-8f66d4ab2845") }, diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/AppSecureJwtDataFormat.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/AppSecureJwtDataFormat.cs index 9a703b50e5..ff87b23e2e 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/AppSecureJwtDataFormat.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/AppSecureJwtDataFormat.cs @@ -57,7 +57,7 @@ public string Protect(AuthenticationTicket data, string? purpose) { Issuer = appSettings.Identity.Issuer, Audience = appSettings.Identity.Audience, - IssuedAt = DateTime.UtcNow, + IssuedAt = DateTimeOffset.UtcNow.DateTime, Expires = data.Properties.ExpiresUtc!.Value.UtcDateTime, SigningCredentials = new SigningCredentials(validationParameters.IssuerSigningKey, SecurityAlgorithms.RsaSha512), Subject = new ClaimsIdentity(data.Principal.Claims), diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Enums/EmailTemplate.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Enums/EmailTemplate.cs deleted file mode 100644 index 5de06da3b0..0000000000 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Enums/EmailTemplate.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Boilerplate.Shared.Enums; - -[JsonConverter(typeof(JsonStringEnumConverter))] -public enum EmailTemplate -{ - EmailChange, - EmailConfirmation -}