问题答案修改

Uat_Study
he 2022-05-11 17:59:36 +08:00
parent c2d17eb3df
commit 0559988bd6
3 changed files with 86 additions and 12 deletions

View File

@ -388,21 +388,81 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
//Qc 问题答案
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(TrialQCQuestionAnswer)))
// Qc 问题答案
if (entitys.Any(x => x.Entity.GetType() == typeof(TrialQCQuestionAnswer)))
{
var entity = item.Entity as TrialQCQuestionAnswer;
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
var entitylist = entitys.Where(x => x.Entity.GetType() == typeof(TrialQCQuestionAnswer)).Select(x => x.Entity as TrialQCQuestionAnswer).ToList();
var firstentity = entitylist.FirstOrDefault();
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == firstentity.SubjectVisitId).FirstOrDefaultAsync();
subjectvisit = subjectvisit ?? new SubjectVisit();
type = type == "Update" ? "Add" : type;
await InsertInspection<TrialQCQuestionAnswer>(item, type, x => new DataInspection()
if (type == "Add")
{
SiteId= subjectvisit.SiteId,
SubjectId= subjectvisit.SubjectId,
SubjectVisitName= subjectvisit.VisitName,
GeneralId = x.Id,
});
await AddInspectionRecordAsync(new DataInspection()
{
SiteId = subjectvisit.SiteId,
Identification = $"{_userInfo.RequestUrl}/{ firstentity.GetType().Name}/{type}",
SubjectId = subjectvisit.SubjectId,
SubjectVisitName = subjectvisit.VisitName,
TrialId= subjectvisit.TrialId,
SubjectVisitId= subjectvisit.Id,
GeneralId = subjectvisit.Id,
}, new
{
QcQuestionAnswerCommands = await Getdata(entitylist),
});
}
else if (type == "Update")
{
type = "Add";
var questionids = entitylist.Where(x => x.SubjectVisitId == subjectvisit.Id).Select(x => x.Id).ToList();
var noupdatedata = _dbContext.TrialQCQuestionAnswer.Where(x => x.SubjectVisitId == subjectvisit.Id && !questionids.Contains(x.Id)).ToList();
entitylist.AddRange(noupdatedata);
await AddInspectionRecordAsync(new DataInspection()
{
Identification = $"{_userInfo.RequestUrl}/{ firstentity.GetType().Name}/{type}",
SiteId = subjectvisit.SiteId,
SubjectId = subjectvisit.SubjectId,
TrialId = subjectvisit.TrialId,
SubjectVisitId = subjectvisit.Id,
SubjectVisitName = subjectvisit.VisitName,
GeneralId = subjectvisit.Id,
}, new
{
QcQuestionAnswerCommands = await Getdata(entitylist),
});
}
async Task<List<AnswerDto>> Getdata(List<TrialQCQuestionAnswer> questionAnswers)
{
var ids = questionAnswers.Select(x => x.TrialQCQuestionConfigureId).ToList();
var trialQCQuestionConfigureDatas = await _dbContext.TrialQCQuestionConfigure.Where(x => ids.Contains(x.Id)).ToListAsync();
var collect = questionAnswers.GroupJoin(trialQCQuestionConfigureDatas, one => one.TrialQCQuestionConfigureId, two => two.Id, (x, y) => new { one = x, two = y })
.SelectMany( a => a.two.DefaultIfEmpty(),(c, d) => new { c = c.one, d })
.Select(o => new AnswerDto()
{
QuestionName = o.d.QuestionName,
Answer = o.c.Answer,
}).ToList();
return collect;
}
}
////Qc 问题答案
//foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(TrialQCQuestionAnswer)))
//{
// var entity = item.Entity as TrialQCQuestionAnswer;
// var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
// subjectvisit = subjectvisit ?? new SubjectVisit();
// type = type == "Update" ? "Add" : type;
// await InsertInspection<TrialQCQuestionAnswer>(item, type, x => new DataInspection()
// {
// SiteId= subjectvisit.SiteId,
// SubjectId= subjectvisit.SubjectId,
// SubjectVisitName= subjectvisit.VisitName,
// GeneralId = x.Id,
// });
//}
#endregion
}

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace IRaCIS.Core.Infra.EFCore.Common.Dto
{
public class AnswerDto
{
public string QuestionName { get; set; }
public string Answer { get; set; }
}
}

View File

@ -263,7 +263,7 @@ namespace IRaCIS.Core.Infra.EFCore
public virtual DbSet<TrialQCQuestion> TrialQCQuestionConfigure { get; set; }
public virtual DbSet<QCQuestion> QCQuestionConfigure { get; set; }
public virtual DbSet<TrialQCQuestionAnswer> TrialQCQuestionRecord { get; set; }
public virtual DbSet<TrialQCQuestionAnswer> TrialQCQuestionAnswer { get; set; }
public virtual DbSet<CheckChallengeDialog> CheckChallengeDialog { get; set; }
#endregion