Finalized delete voice work logic.
This commit is contained in:
@@ -26,6 +26,8 @@ public class VoiceWorkWriter(AppDbContext dbContext) : IVoiceWorkWriter
|
||||
VoiceWork[] voiceWorks = [.. dbContext.VoiceWorks.Where(voiceWork => request.VoiceWorkIds.Contains(voiceWork.VoiceWorkId))
|
||||
.Include(x => x.Circle)];
|
||||
|
||||
List<VoiceWork> voiceWorksToDelete = [];
|
||||
|
||||
foreach (VoiceWork voiceWork in voiceWorks)
|
||||
{
|
||||
if (results.ContainsKey(voiceWork.VoiceWorkId) == false)
|
||||
@@ -46,11 +48,21 @@ public class VoiceWorkWriter(AppDbContext dbContext) : IVoiceWorkWriter
|
||||
continue;
|
||||
}
|
||||
|
||||
dbContext.Remove(voiceWork);
|
||||
voiceWorksToDelete.Add(voiceWork);
|
||||
results[voiceWork.VoiceWorkId] = DeleteVoiceWorkStatus.Deleted;
|
||||
}
|
||||
|
||||
await dbContext.SaveChangesAsync(cancellationToken);
|
||||
int[] voiceWorkIdsToDelete = [.. voiceWorksToDelete.Select(x => x.VoiceWorkId)];
|
||||
|
||||
if (voiceWorkIdsToDelete.Length > 0)
|
||||
{
|
||||
dbContext.VoiceWorks.RemoveRange(voiceWorksToDelete);
|
||||
await dbContext.SaveChangesAsync(cancellationToken);
|
||||
|
||||
await dbContext.VoiceWorkSearches
|
||||
.Where(x => voiceWorkIdsToDelete.Contains(x.VoiceWorkId))
|
||||
.ExecuteDeleteAsync(cancellationToken);
|
||||
}
|
||||
|
||||
return new DeleteVoiceWorkResponse(results);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user