From 7aa49f82719c4d074d9ef41e9e1b9b310f96e47b Mon Sep 17 00:00:00 2001 From: beo3000 Date: Wed, 7 Jan 2026 22:19:18 +0100 Subject: [PATCH] fix change default club: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Fix teilt die Operation in zwei Schritte: 1. Alle IsDefault auf false → SaveChanges 2. Neuen Default auf true → SaveChanges Das verhindert, dass EF Core temporär zwei IsDefault = true Einträge hat, was den Filtered Unique Index verletzen würde. --- src/Koogle.Application/Services/UserService.cs | 17 +++++++++++------ src/Koogle.Web/Components/Pages/Days/Days.razor | 11 +++++++---- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/Koogle.Application/Services/UserService.cs b/src/Koogle.Application/Services/UserService.cs index c75f326..ac5d1a9 100644 --- a/src/Koogle.Application/Services/UserService.cs +++ b/src/Koogle.Application/Services/UserService.cs @@ -316,13 +316,18 @@ public class UserService : IUserService // Update default club if specified if (dto.DefaultClubId.HasValue) { - var memberships = await _appDb.UserProfileClubs - .Where(upc => upc.UserProfileId == profile.Id) - .ToListAsync(ct); - - foreach (var m in memberships) + // First: clear all defaults (to avoid unique index violation) + foreach (var m in profile.Clubs) { - m.IsDefault = m.ClubId == dto.DefaultClubId.Value; + m.IsDefault = false; + } + await _appDb.SaveChangesAsync(ct); + + // Then: set the new default + var newDefault = profile.Clubs.FirstOrDefault(m => m.ClubId == dto.DefaultClubId.Value); + if (newDefault != null) + { + newDefault.IsDefault = true; } } diff --git a/src/Koogle.Web/Components/Pages/Days/Days.razor b/src/Koogle.Web/Components/Pages/Days/Days.razor index fcdc7d1..f42e83d 100644 --- a/src/Koogle.Web/Components/Pages/Days/Days.razor +++ b/src/Koogle.Web/Components/Pages/Days/Days.razor @@ -50,10 +50,13 @@ Filtern - - Neuer Spieltag - + @if (AuthState.Value.IsClubEditor || AuthState.Value.IsClubTreasurer || AuthState.Value.IsClubAdmin || AuthState.Value.IsSuperAdmin) + { + + Neuer Spieltag + + } Datum