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.
This commit is contained in:
parent
cd98df5a23
commit
7aa49f8271
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue