fix(client-controller): single constructor with IHtmlLocalizer

The partial class ClientController had two constructors declared
across ClientController.cs and ClientController.Collections.cs.
ASP.NET Core DI failed to pick one at request time with:

  System.InvalidOperationException: Multiple constructors accepting
  all given argument types have been found in type
  'Yavsc.Controllers.ClientController'.

Move IHtmlLocalizer<ClientController> into the primary constructor
in ClientController.cs and drop the duplicate one in
ClientController.Collections.cs. The Collections partial now keeps
only its readonly field and action methods; the constructor and
field assignment are unified on the main file.

Also add the missing 'using Microsoft.AspNetCore.Mvc.Localization;'
to ClientController.cs so IHtmlLocalizer resolves.
This commit is contained in:
Paul Schneider 2026-06-21 21:14:20 +01:00
commit 6aaff74082
13 changed files with 582 additions and 23 deletions

View file

@ -27,12 +27,8 @@ public partial class ClientController
readonly IHtmlLocalizer _localizer;
public ClientController(
IHtmlLocalizer<ClientController> localizer
)
{
_localizer = localizer;
}
// ClientController has a single constructor declared in
// ClientController.cs; this partial shares its fields.
[HttpGet]

View file

@ -3,6 +3,7 @@ using IdentityServer8.EntityFramework.Entities;
using IdentityServer8.EntityFramework.Stores;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Localization;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Options;
@ -21,7 +22,8 @@ namespace Yavsc.Controllers
public ClientController(
ApplicationDbContext dbContext,
ClientStore clientStore, IOptions<SiteSettings> siteSettingsOptions
ClientStore clientStore, IOptions<SiteSettings> siteSettingsOptions,
IHtmlLocalizer<ClientController> localizer
)
@ -29,6 +31,7 @@ namespace Yavsc.Controllers
this.dbContext = dbContext;
this.clientStore = clientStore;
this.siteSettings = siteSettingsOptions.Value;
_localizer = localizer;
}
// GET: Client