diff --git a/EnvelopeGenerator.Web/Controllers/Test/TestLocalizerController.cs b/EnvelopeGenerator.Web/Controllers/Test/TestLocalizerController.cs index f5e3abb3..99d06047 100644 --- a/EnvelopeGenerator.Web/Controllers/Test/TestLocalizerController.cs +++ b/EnvelopeGenerator.Web/Controllers/Test/TestLocalizerController.cs @@ -24,7 +24,7 @@ namespace EnvelopeGenerator.Web.Controllers.Test } [HttpGet("{key}")] - public IActionResult Localize([FromRoute] string key) => Ok(_localizer[key]); + public IActionResult Localize([FromRoute] string key) => Ok(_localizer[key].Value); [HttpGet("fi-class")] public IActionResult GetFIClass(string? lang = null) => lang is null ? Ok(_cultures.FIClasses) : Ok(_cultures[lang]?.FIClass); @@ -39,6 +39,6 @@ namespace EnvelopeGenerator.Web.Controllers.Test : NotFound(); [HttpGet("culture/user")] - public IActionResult GetUserCulture() => Request.Cookies.GetCulture() is string cult ? Ok(cult) : NotFound(); + public IActionResult GetUserCulture() => Request.Cookies.GetCultureOrDefault() is string cult ? Ok(cult) : NotFound(); } } diff --git a/EnvelopeGenerator.Web/Extensions/WebExtensions.cs b/EnvelopeGenerator.Web/Extensions/WebExtensions.cs index 07a57ada..ee86648c 100644 --- a/EnvelopeGenerator.Web/Extensions/WebExtensions.cs +++ b/EnvelopeGenerator.Web/Extensions/WebExtensions.cs @@ -60,20 +60,16 @@ public static class WebExtensions #endregion #region Cookie - public static string GetCulture(this IRequestCookieCollection cookies) + public static string? GetCulture(this IRequestCookieCollection cookies) { - var cookieValue = cookies[CookieRequestCultureProvider.DefaultCookieName]; - - if (!string.IsNullOrEmpty(cookieValue)) - { - var culture = CookieRequestCultureProvider.ParseCookieValue(cookieValue)?.Cultures.FirstOrDefault().Value; - if (!string.IsNullOrEmpty(culture)) - return culture; - } - - return CultureInfo.CurrentUICulture.Name; + if (cookies[CookieRequestCultureProvider.DefaultCookieName] is string cookieValue) + return CookieRequestCultureProvider.ParseCookieValue(cookieValue)?.Cultures.FirstOrDefault().Value; + else + return null; } + public static string GetCultureOrDefault(this IRequestCookieCollection cookies) => GetCulture(cookies) ?? CultureInfo.CurrentCulture.Name; + public static void SetCulture(this IResponseCookies cookies, string culture) { var cookieOptions = new CookieOptions diff --git a/EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs b/EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs index 61756a12..825f8cf5 100644 --- a/EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs +++ b/EnvelopeGenerator.Web/Middleware/CultureMiddleware.cs @@ -19,8 +19,7 @@ public class CultureMiddleware public async Task InvokeAsync(HttpContext context) { - var cookieName = CookieRequestCultureProvider.DefaultCookieName; - var cookieValue = context.Request.Cookies[cookieName]; + var cookieValue = context.Request.Cookies.GetCulture(); if (!_cultures.Languages.Contains(cookieValue)) {