refactor(HomeController): remove culture binding as viewdata; bind via string localizer

This commit is contained in:
2025-08-23 00:14:43 +02:00
parent 0b33ba0fd8
commit d390802305
14 changed files with 190 additions and 153 deletions

View File

@@ -58,8 +58,6 @@ public class HomeController : ViewControllerBase
[HttpGet("/")]
public IActionResult Main()
{
ViewData["UserCulture"] = _cultures[UserLanguage];
return View(new MainViewModel()
{
Title = _configuration["MainPageTitle"]
@@ -118,8 +116,6 @@ public class HomeController : ViewControllerBase
{
try
{
ViewData["UserCulture"] = _cultures[UserLanguage];
return await _envRcvService.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId: envelopeReceiverId).ThenAsync(
SuccessAsync: async er => {
if (User.IsInRole(ReceiverRole.FullyAuth))
@@ -151,7 +147,6 @@ public class HomeController : ViewControllerBase
{
try
{
ViewData["UserCulture"] = _cultures[UserLanguage];
ViewData["EnvelopeKey"] = envelopeReceiverId;
envelopeReceiverId = _sanitizer.Sanitize(envelopeReceiverId);
@@ -310,7 +305,6 @@ public class HomeController : ViewControllerBase
{
try
{
ViewData["UserCulture"] = _cultures[UserLanguage];
ViewData["EnvelopeKey"] = envelopeReceiverId;
envelopeReceiverId = _sanitizer.Sanitize(envelopeReceiverId);
@@ -398,7 +392,6 @@ public class HomeController : ViewControllerBase
return base.Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked");
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
ViewData["UserCulture"] = _cultures[UserLanguage];
ViewData["EnvelopeKey"] = envelopeReceiverId;
return base.View();
}),
@@ -428,8 +421,6 @@ public class HomeController : ViewControllerBase
return await _envRcvService.ReadByEnvelopeReceiverIdAsync(envelopeReceiverId).ThenAsync(
SuccessAsync: async (er) =>
{
ViewData["UserCulture"] = _cultures[UserLanguage];
ViewData["UserCulture"] = _cultures[UserLanguage];
return await _historyService.IsRejected(envelopeId: er.EnvelopeId)
? View(er)
: Redirect($"/EnvelopeKey/{envelopeReceiverId}/Locked");
@@ -454,8 +445,6 @@ public class HomeController : ViewControllerBase
{
try
{
ViewData["UserCulture"] = _cultures[UserLanguage];
readOnlyKey = _sanitizer.Sanitize(readOnlyKey);
// check if the readOnlyId is valid
@@ -530,26 +519,15 @@ public class HomeController : ViewControllerBase
return Ok(new { EnvelopeUuid = envelopeUuid, ReceiverSignature = receiverSignature });
}
[HttpPost("lang/{language}")]
public IActionResult SetLanguage([FromRoute] string language)
[HttpPost("lang/{culture}")]
public IActionResult SetLanguage([FromRoute] string culture)
{
try
{
language = _sanitizer.Sanitize(language);
if (!_cultures.Languages.Contains(language))
if (!_cultures.Languages.Contains(culture))
return BadRequest();
var cookieOptions = new CookieOptions()
{
Secure = false,
SameSite = SameSiteMode.Strict,
HttpOnly = true
};
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(language)),
cookieOptions);
Response.Cookies.SetCulture(culture);
return Redirect(Request.Headers["Referer"].ToString());
}
@@ -563,7 +541,5 @@ public class HomeController : ViewControllerBase
[HttpGet("lang")]
public IActionResult GetLanguages() => Ok(_cultures.Languages);
private string? UserLanguage => Request.Cookies[CookieRequestCultureProvider.DefaultCookieName];
public IActionResult Error404() => this.ViewError404();
}