From 73f0e356c4ad5d287680bd05eedc530d4f2d96cc Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Tue, 16 May 2023 16:14:49 +0800 Subject: [PATCH] move InitializeCulture --- .../DependencyInjection.cs | 20 ++++++++++++++++ .../DependencyInjection/IocConfiguration.cs | 23 ------------------- .../Core/ExceptionService/ExceptionFormat.cs | 2 ++ .../Core/Shell/ScheduleTaskInterop.cs | 2 ++ src/Snap.Hutao/Snap.Hutao/Program.cs | 2 -- 5 files changed, 24 insertions(+), 25 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/DependencyInjection.cs b/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/DependencyInjection.cs index ae540224..c28606c0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/DependencyInjection.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/DependencyInjection.cs @@ -2,6 +2,9 @@ // Licensed under the MIT license. using CommunityToolkit.Mvvm.Messaging; +using Snap.Hutao.Service; +using System.Globalization; +using Windows.Globalization; namespace Snap.Hutao.Core.DependencyInjection; @@ -36,6 +39,23 @@ internal static class DependencyInjection .BuildServiceProvider(true); Ioc.Default.ConfigureServices(serviceProvider); + + serviceProvider.InitializeCulture(); + + return serviceProvider; + } + + private static IServiceProvider InitializeCulture(this IServiceProvider serviceProvider) + { + AppOptions appOptions = serviceProvider.GetRequiredService(); + appOptions.PreviousCulture = CultureInfo.CurrentCulture; + + CultureInfo cultureInfo = appOptions.CurrentCulture; + + CultureInfo.CurrentCulture = cultureInfo; + CultureInfo.CurrentUICulture = cultureInfo; + ApplicationLanguages.PrimaryLanguageOverride = cultureInfo.Name; + return serviceProvider; } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/IocConfiguration.cs b/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/IocConfiguration.cs index 6e1fb852..ff493fe4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/IocConfiguration.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/IocConfiguration.cs @@ -4,10 +4,7 @@ using Microsoft.EntityFrameworkCore; using Snap.Hutao.Core.Json; using Snap.Hutao.Model.Entity.Database; -using Snap.Hutao.Service; using System.Diagnostics; -using System.Globalization; -using Windows.Globalization; namespace Snap.Hutao.Core.DependencyInjection; @@ -39,26 +36,6 @@ internal static class IocConfiguration .AddDbContext(AddDbContextCore); } - /// - /// 初始化语言 - /// - /// 服务提供器 - /// 服务提供器,用于链式调用 - [EditorBrowsable(EditorBrowsableState.Never)] - public static IServiceProvider InitializeCulture(this IServiceProvider serviceProvider) - { - AppOptions appOptions = serviceProvider.GetRequiredService(); - appOptions.PreviousCulture = CultureInfo.CurrentCulture; - - CultureInfo cultureInfo = appOptions.CurrentCulture; - - CultureInfo.CurrentCulture = cultureInfo; - CultureInfo.CurrentUICulture = cultureInfo; - ApplicationLanguages.PrimaryLanguageOverride = cultureInfo.Name; - - return serviceProvider; - } - private static void AddDbContextCore(IServiceProvider provider, DbContextOptionsBuilder builder) { HutaoOptions hutaoOptions = provider.GetRequiredService(); diff --git a/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionFormat.cs b/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionFormat.cs index 24fb7776..3a22addf 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionFormat.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionFormat.cs @@ -20,6 +20,8 @@ internal sealed class ExceptionFormat /// 格式化后的异常 public static string Format(Exception exception) { + // TODO: handle WinRT.ExceptionHelpers+__RestrictedErrorObject + StringBuilder builder = new(); builder.AppendLine("Exception Data:"); diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Shell/ScheduleTaskInterop.cs b/src/Snap.Hutao/Snap.Hutao/Core/Shell/ScheduleTaskInterop.cs index dd82d68b..36a7ab7b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Shell/ScheduleTaskInterop.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Shell/ScheduleTaskInterop.cs @@ -29,8 +29,10 @@ internal sealed class ScheduleTaskInterop : IScheduleTaskInterop TaskDefinition task = TaskService.Instance.NewTask(); task.RegistrationInfo.Description = SH.CoreScheduleTaskHelperDailyNoteRefreshTaskDescription; task.Triggers.Add(new TimeTrigger() { Repetition = new(TimeSpan.FromSeconds(interval), TimeSpan.Zero), }); + string scriptPath = EnsureWScriptCreated("DailyNoteRefresh", "hutao://DailyNote/Refresh"); task.Actions.Add("wscript", $@"/b ""{scriptPath}"""); + TaskService.Instance.RootFolder.RegisterTaskDefinition(DailyNoteRefreshTaskName, task); return true; } diff --git a/src/Snap.Hutao/Snap.Hutao/Program.cs b/src/Snap.Hutao/Snap.Hutao/Program.cs index a99cecd8..d470a014 100644 --- a/src/Snap.Hutao/Snap.Hutao/Program.cs +++ b/src/Snap.Hutao/Snap.Hutao/Program.cs @@ -33,8 +33,6 @@ public static partial class Program // By adding the using statement, we can dispose the injected services when we closing using (ServiceProvider serviceProvider = DependencyInjection.Initialize()) { - serviceProvider.InitializeCulture(); - // In a Desktop app this runs a message pump internally, // and does not return until the application shuts down. Application.Start(AppInitializationCallback);