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