From e3a8db3206636ed40a4287e8a52ecdab3b9665d3 Mon Sep 17 00:00:00 2001 From: nns Date: Sun, 4 Oct 2026 16:39:46 +0500 Subject: [PATCH] =?UTF-8?q?fix(s30):=20QuickLoginDemoSeeder=20=D0=B1=D0=BE?= =?UTF-8?q?=D0=BB=D1=8C=D1=88=D0=B5=20=D0=BD=D0=B5=20=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D0=B4=D1=91=D1=82=20API=20=D0=BF=D1=80=D0=B8=20=D1=81=D0=B1?= =?UTF-8?q?=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Весь StartAsync обёрнут try/catch — dev-удобство для стенда не должно класть API. Если сид упал (DbUpdateConcurrencyException и т.п.) — Warning в лог, SuperAdmin + уже существующие аккаунты по мастер-паролю работают. Demo-trio можно будет досеять руками или через POST /api/admin/seed-demo если нужно. Co-Authored-By: Claude Opus 4.7 --- .../Seed/QuickLoginDemoSeeder.cs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/food-market.api/Seed/QuickLoginDemoSeeder.cs b/src/food-market.api/Seed/QuickLoginDemoSeeder.cs index de4e769..9e0afbd 100644 --- a/src/food-market.api/Seed/QuickLoginDemoSeeder.cs +++ b/src/food-market.api/Seed/QuickLoginDemoSeeder.cs @@ -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(); var userMgr = scope.ServiceProvider.GetRequiredService>();