Compare commits

...

2 Commits

Author SHA1 Message Date
beo3000 1d7139fc1a mod text 2026-01-07 22:19:41 +01:00
beo3000 7aa49f8271 fix change default club:
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.
2026-01-07 22:19:18 +01:00
3 changed files with 19 additions and 11 deletions

View File

@ -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;
}
}

View File

@ -39,7 +39,7 @@
}
else
{
<MudText Typo="Typo.subtitle2" Class="mb-2">Teilnehmer vorauswählen</MudText>
<MudText Typo="Typo.subtitle2" Class="mb-2">Teilnehmer auswählen</MudText>
<MudText Typo="Typo.caption" Color="Color.Secondary" Class="mb-2">
Mitglieder sind automatisch vorausgewählt. Du kannst Teilnehmer später noch ändern.
</MudText>

View File

@ -50,10 +50,13 @@
Filtern
</MudButton>
<MudSpacer />
<MudButton Variant="Variant.Filled" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Add"
OnClick="OpenCreateDialog">
Neuer Spieltag
</MudButton>
@if (AuthState.Value.IsClubEditor || AuthState.Value.IsClubTreasurer || AuthState.Value.IsClubAdmin || AuthState.Value.IsSuperAdmin)
{
<MudButton Variant="Variant.Filled" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Add"
OnClick="OpenCreateDialog">
Neuer Spieltag
</MudButton>
}
</ToolBarContent>
<HeaderContent>
<MudTh><MudTableSortLabel SortBy="new Func<DaySummaryDto, object>(x => x.PostDate)">Datum</MudTableSortLabel></MudTh>