From 98fbeaf6560e5d37020167dcdd326b063d3dc26e Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 1 Apr 2025 17:43:43 +0800 Subject: [PATCH] Refactor timezone retrieval logic to prioritize settings, request, and server fallback --- .../AspNetCore/Timing/AbpTimeZoneMiddleware.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Timing/AbpTimeZoneMiddleware.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Timing/AbpTimeZoneMiddleware.cs index df70441a31..a126595a16 100644 --- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Timing/AbpTimeZoneMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Timing/AbpTimeZoneMiddleware.cs @@ -21,21 +21,19 @@ public class AbpTimeZoneMiddleware : AbpMiddlewareBase, ITransientDependency return; } - string? timezone = null; - - if (!context.RequestServices.GetRequiredService().IsAuthenticated) - { - timezone = await GetTimezoneFromRequestAsync(context); - } + // Try to get the timezone from the setting system first + var settingProvider = context.RequestServices.GetRequiredService(); + var timezone = await settingProvider.GetOrNullAsync(TimingSettingNames.TimeZone); if (timezone.IsNullOrWhiteSpace()) { - var settingProvider = context.RequestServices.GetRequiredService(); - timezone = await settingProvider.GetOrNullAsync(TimingSettingNames.TimeZone); + // Try to get the timezone from the HTTP request if the setting is not available + timezone = await GetTimezoneFromRequestAsync(context); } if (timezone.IsNullOrWhiteSpace()) { + // Try to get the timezone from the current running server if the setting and request are not available timezone = context.RequestServices.GetRequiredService().GetCurrentIanaTimezoneName(); }