Skip to content

Commit 5d56058

Browse files
committed
Criteria: исправление для пустого списка критериев
1 parent 90ab28f commit 5d56058

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

HwProj.CoursesService/HwProj.CoursesService.API/Repositories/TasksRepository.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,20 @@ public TasksRepository(CourseContext context)
1717
{
1818
}
1919

20-
private async Task UpdateCriteria(List<Criterion> criteria)
20+
private async Task UpdateCriteria(List<Criterion> criteria, long taskId)
2121
{
22-
var taskIds = criteria.Select(x => x.TaskId).ToList();
2322
var criteriaToCheck = await Context.Set<Criterion>()
2423
.AsNoTracking()
25-
.Where(x => taskIds.Contains(x.TaskId))
24+
.Where(x => x.TaskId == taskId)
2625
.ToDictionaryAsync(x => x.Id, x => x);
2726

2827
var criteriaToAdd = new List<Criterion>();
2928
var criteriaToUpdate = new List<Criterion>();
3029

3130
foreach (var criterion in criteria)
3231
{
32+
criterion.TaskId = taskId;
33+
3334
if (criterion.Id == 0) criteriaToAdd.Add(criterion);
3435
else if (criteriaToCheck.TryGetValue(criterion.Id, out var existingCriterion))
3536
{
@@ -59,9 +60,7 @@ public async Task UpdateAsync(long id, Expression<Func<HomeworkTask, HomeworkTas
5960
using var transactionScope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled);
6061

6162
await UpdateAsync(id, updateFunc);
62-
63-
foreach (var criterion in criteria) criterion.TaskId = id;
64-
await UpdateCriteria(criteria);
63+
await UpdateCriteria(criteria, id);
6564

6665
await Context.SaveChangesAsync();
6766
transactionScope.Complete();

0 commit comments

Comments
 (0)