Skip to content

Commit 68ca156

Browse files
committed
Fix an issue where the removal of roles failed
1 parent df430c5 commit 68ca156

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

LDTTeam.Authentication.RewardsService/Service/UserRewardAssignmentsRepository.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,26 @@ public async Task AddUserRewardsAsync(Guid userId, List<(RewardType Type, string
4343

4444
public async Task RemoveUserRewardsAsync(Guid userId, List<(RewardType Type, string Reward)> rewards)
4545
{
46-
var assignments = await dbContext.RewardAssignments
47-
.Where(x => x.UserId == userId && rewards.Any(r => r.Type == x.Type && r.Reward == x.Reward))
48-
.ToListAsync();
49-
if (assignments.Count > 0)
46+
var assignmentsRemoved = false;
47+
foreach (var (rewardType, reward) in rewards)
48+
{
49+
var assignment = await dbContext.RewardAssignments
50+
.FirstOrDefaultAsync(x => x.UserId == userId && x.Type == rewardType && x.Reward == reward);
51+
52+
if (assignment == null) continue;
53+
54+
dbContext.RewardAssignments.Remove(assignment);
55+
assignmentsRemoved = true;
56+
57+
}
58+
59+
if (assignmentsRemoved)
5060
{
51-
dbContext.RewardAssignments.RemoveRange(assignments);
5261
await dbContext.SaveChangesAsync();
5362
var updatedRewards = await QueryUserRewardsAsync(userId);
5463
cache.Set(GetCacheKey(userId), updatedRewards, _cacheDuration);
5564
}
65+
5666
}
5767

5868
public async Task<List<(RewardType Type, string Reward)>> GetUserRewardsAsync(Guid userId)

0 commit comments

Comments
 (0)