From 0cd9d1867c896d6de4e3908a619ad402cf468798 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 6 Jan 2023 09:38:16 +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 | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs index 5878e8866..40c10ed1d 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTask/ReadingImageTaskService.cs @@ -135,6 +135,10 @@ namespace IRaCIS.Application.Services var questionAnswerList = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToListAsync(); + var tableQuestionAnswerList= await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToListAsync(); + + var rowInfoList = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToListAsync(); + foreach (var item in inDto.QuestionAnswer) { @@ -162,10 +166,32 @@ namespace IRaCIS.Application.Services foreach (var item in inDto.TableQuestionAnswer) { - await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowId == item.RowId&&x.TableQuestionId==item.TableQuestionId, x => new ReadingTableQuestionAnswer() + + if (tableQuestionAnswerList.Any(x => x.QuestionId == item.QuestionId&&x.RowId==item.RowId&&x.TableQuestionId==item.TableQuestionId)) { - Answer = item.Answer, - }); + await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowId == item.RowId && x.TableQuestionId == item.TableQuestionId, x => new ReadingTableQuestionAnswer() + { + Answer = item.Answer, + }); + } + else + { + + var rowInfo = rowInfoList.Where(x => x.Id == item.RowId).FirstOrDefault()??new ReadingTableAnswerRowInfo (); + + await _readingTableQuestionAnswerRepository.AddAsync(new ReadingTableQuestionAnswer() + { + Answer = item.Answer, + QuestionId=item.QuestionId, + TableQuestionId=item.TableQuestionId, + RowIndex= rowInfo.RowIndex, + RowId=rowInfo.Id, + VisitTaskId = inDto.VisitTaskId, + TrialId = visitTask.TrialId + }); + } + + } await _readingTableQuestionAnswerRepository.SaveChangesAsync();