Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8

IRC_NewDev
hang 2024-03-12 13:28:38 +08:00
commit 2060f2c62e
1 changed files with 38 additions and 10 deletions

View File

@ -503,14 +503,16 @@ namespace IRaCIS.Core.Application.Service
[HttpPost]
public async Task<IResponseOutput> AddDefaultQuestions(AddDefaultQuestionsInDto inDto)
{
if (await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null))
{
await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null);
}
else
{
await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType != inDto.LanguageType);
}
//if (await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null))
//{
// await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null);
//}
//else
//{
// await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType != inDto.LanguageType);
//}
await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId);
var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync();
List<ReadingCategory> needAddCategory = new List<ReadingCategory>() { ReadingCategory.Visit };
if(criterionInfo.IsReadingPeriod)
@ -529,8 +531,7 @@ namespace IRaCIS.Core.Application.Service
var maxOrder = await _readingMedicineTrialQuestionRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == inDto.TrialReadingCriterionId).OrderByDescending(x => x.ShowOrder).Select(x => x.ShowOrder).FirstOrDefaultAsync();
List<TrialDataFromSystem> needList = await _readingMedicineSystemQuestionRepository
.Where(x=>x.LanguageType==inDto.LanguageType)
.Where(x =>needAddCategory.Contains(x.ReadingCategory))
.Where(x => x.CriterionTypeEnum == criterionInfo.CriterionType || x.IsGeneral)
.Where(x =>needAddCategory.Contains(x.ReadingCategory) && x.CriterionTypeEnum == criterionInfo.CriterionType)
.Select(x => new TrialDataFromSystem()
{
@ -548,6 +549,33 @@ namespace IRaCIS.Core.Application.Service
TrialId = inDto.TrialId,
}).ToListAsync();
foreach (var item in needAddCategory.Where(x => x != ReadingCategory.Visit).ToList())
{
if (!needList.Any(x => x.ReadingCategory == item))
{
needList.AddRange(await _readingMedicineSystemQuestionRepository
.Where(x => x.LanguageType == inDto.LanguageType)
.Where(x => x.ReadingCategory == item && x.IsGeneral)
.Select(x => new TrialDataFromSystem()
{
ShowOrder = x.ShowOrder,
IsEnable = x.IsEnable,
LanguageType = x.LanguageType,
IsRequired = x.IsRequired,
QuestionName = x.QuestionName,
TrialReadingCriterionId = inDto.TrialReadingCriterionId,
Type = x.Type,
ParentId = x.ParentId,
SystemQuestionId = x.Id,
ReadingCategory = x.ReadingCategory,
TypeValue = x.TypeValue,
TrialId = inDto.TrialId,
}).ToListAsync());
}
}
needList.ForEach(x => {
x.Id = NewId.NextGuid();
maxOrder++;