diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs index 22fd0e86..de4f11e7 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingCriterion/ReadingCriterionService.cs @@ -20,14 +20,18 @@ namespace IRaCIS.Core.Application.Service.RC private readonly IRepository _readingTaskQuestionAnswer; private readonly IRepository _readingCriterionPageRepository; private readonly IRepository _readingCriterionDictionaryRepository; - + private readonly IRepository _visitTaskRepository; + private readonly IRepository _readingTableQuestionAnswerRepository; + private readonly IRepository _readingTableAnswerRowInfoRepository; public ReadingQuestionService( IRepository readingQuestionCriterionSystemRepository, IRepository readingQuestionCriterionTrialRepository, IRepository readingQuestionTrialRepository, IRepository readingCriterionDictionaryRepository, - + IRepository visitTaskRepository, + IRepository readingTableQuestionAnswerRepository, + IRepository readingTableAnswerRowInfoRepository, IRepository readingTaskQuestionAnswer, IRepository readingCriterionPageRepository) { @@ -37,8 +41,9 @@ namespace IRaCIS.Core.Application.Service.RC this._readingCriterionPageRepository = readingCriterionPageRepository; this._readingCriterionDictionaryRepository = readingCriterionDictionaryRepository; - - + this._visitTaskRepository = visitTaskRepository; + this._readingTableQuestionAnswerRepository = readingTableQuestionAnswerRepository; + this._readingTableAnswerRowInfoRepository = readingTableAnswerRowInfoRepository; this._readingTaskQuestionAnswer = readingTaskQuestionAnswer; } @@ -57,6 +62,11 @@ namespace IRaCIS.Core.Application.Service.RC }); + var taskquery = _visitTaskRepository.Where(x => x.TrialReadingCriterionId == trialReadingCriterionId).AsQueryable(); + await _readingTaskQuestionAnswer.BatchDeleteNoTrackingAsync(x => taskquery.Any(y=>y.Id==x.VisitTaskId)); + await _readingTableAnswerRowInfoRepository.BatchDeleteNoTrackingAsync(x => taskquery.Any(y => y.Id == x.VisitTaskId)); + await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => taskquery.Any(y => y.Id == x.VisitTaskId)); + return ResponseOutput.Ok(); }