问题答案修改
parent
c2d17eb3df
commit
0559988bd6
|
@ -389,20 +389,80 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
|
||||
|
||||
// Qc 问题答案
|
||||
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(TrialQCQuestionAnswer)))
|
||||
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")
|
||||
{
|
||||
await AddInspectionRecordAsync(new DataInspection()
|
||||
{
|
||||
SiteId = subjectvisit.SiteId,
|
||||
Identification = $"{_userInfo.RequestUrl}/{ firstentity.GetType().Name}/{type}",
|
||||
SubjectId = subjectvisit.SubjectId,
|
||||
SubjectVisitName = subjectvisit.VisitName,
|
||||
GeneralId = x.Id,
|
||||
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
|
||||
|
||||
}
|
||||
|
|
|
@ -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; }
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue