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] [HttpPost]
public async Task<IResponseOutput> AddDefaultQuestions(AddDefaultQuestionsInDto inDto) public async Task<IResponseOutput> AddDefaultQuestions(AddDefaultQuestionsInDto inDto)
{ {
if (await _readingMedicineTrialQuestionRepository.AnyAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null)) //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); // await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType == inDto.LanguageType && x.SystemQuestionId != null);
} //}
else //else
{ //{
await _readingMedicineTrialQuestionRepository.BatchDeleteNoTrackingAsync(x => x.TrialReadingCriterionId == inDto.TrialReadingCriterionId && x.LanguageType != inDto.LanguageType); // 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(); var criterionInfo = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).FirstNotNullAsync();
List<ReadingCategory> needAddCategory = new List<ReadingCategory>() { ReadingCategory.Visit }; List<ReadingCategory> needAddCategory = new List<ReadingCategory>() { ReadingCategory.Visit };
if(criterionInfo.IsReadingPeriod) 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(); 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 List<TrialDataFromSystem> needList = await _readingMedicineSystemQuestionRepository
.Where(x=>x.LanguageType==inDto.LanguageType) .Where(x=>x.LanguageType==inDto.LanguageType)
.Where(x =>needAddCategory.Contains(x.ReadingCategory)) .Where(x =>needAddCategory.Contains(x.ReadingCategory) && x.CriterionTypeEnum == criterionInfo.CriterionType)
.Where(x => x.CriterionTypeEnum == criterionInfo.CriterionType || x.IsGeneral)
.Select(x => new TrialDataFromSystem() .Select(x => new TrialDataFromSystem()
{ {
@ -548,6 +549,33 @@ namespace IRaCIS.Core.Application.Service
TrialId = inDto.TrialId, TrialId = inDto.TrialId,
}).ToListAsync(); }).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 => { needList.ForEach(x => {
x.Id = NewId.NextGuid(); x.Id = NewId.NextGuid();
maxOrder++; maxOrder++;