fix(s30): QuickLoginDemoSeeder больше не кладёт API при сбое
Весь StartAsync обёрнут try/catch — dev-удобство для стенда не должно класть API. Если сид упал (DbUpdateConcurrencyException и т.п.) — Warning в лог, SuperAdmin + уже существующие аккаунты по мастер-паролю работают. Demo-trio можно будет досеять руками или через POST /api/admin/seed-demo если нужно. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
ee24a5ed8e
commit
e3a8db3206
|
|
@ -54,6 +54,23 @@ public async Task StartAsync(CancellationToken ct)
|
|||
return;
|
||||
}
|
||||
|
||||
// Весь сидер обёрнут try/catch: dev-удобство для стенда не должно
|
||||
// класть API. Если что-то упало — пишем Warning и выходим. Админ
|
||||
// сможет руками подёргать POST /api/admin/seed-demo или починить
|
||||
// сломанное состояние; стенд при этом остаётся работоспособным.
|
||||
try
|
||||
{
|
||||
await SeedAsync(ct);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log.LogWarning(ex, "QuickLoginDemoSeeder: не удалось засеять демо-данные для стенда. " +
|
||||
"Это не критично — API остаётся рабочим, SuperAdmin по-прежнему пускает по мастер-паролю.");
|
||||
}
|
||||
}
|
||||
|
||||
private async Task SeedAsync(CancellationToken ct)
|
||||
{
|
||||
using var scope = _services.CreateScope();
|
||||
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
|
||||
var userMgr = scope.ServiceProvider.GetRequiredService<UserManager<User>>();
|
||||
|
|
|
|||
Loading…
Reference in a new issue