From 8b3b69fbb8a269d60106be9e8edf97d8d823d01d Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Thu, 5 Jan 2023 16:05:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ReadingImageTaskService.cs | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index a81a1ad7..5878e886 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -131,12 +131,33 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task ChangeCalculationAnswer(ChangeCalculationAnswerInDto inDto) { + var visitTask = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync(); + + var questionAnswerList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToListAsync(); + + foreach (var item in inDto.QuestionAnswer) { - await _readingTaskQuestionAnswerRepository.UpdatePartialFromQueryAsync(x=>x.VisitTaskId==inDto.VisitTaskId&&x.ReadingQuestionTrialId==item.QuestionId, x => new ReadingTaskQuestionAnswer() + if (questionAnswerList.Any(x => x.ReadingQuestionTrialId == item.QuestionId)) { - Answer = item.Answer, - }); + await _readingTaskQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.ReadingQuestionTrialId == item.QuestionId, x => new ReadingTaskQuestionAnswer() + { + Answer = item.Answer, + }); + } + else + { + await _readingTaskQuestionAnswerRepository.AddAsync(new ReadingTaskQuestionAnswer() { + Answer=item.Answer, + ReadingQuestionCriterionTrialId= visitTask.TrialReadingCriterionId, + ReadingQuestionTrialId= item.QuestionId, + SubjectId= visitTask.SubjectId, + VisitTaskId=inDto.VisitTaskId, + TrialId= visitTask.TrialId + }); + } + + } foreach (var item in inDto.TableQuestionAnswer)