问题答案修改
parent
c2d17eb3df
commit
0559988bd6
|
@ -388,21 +388,81 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Qc 问题答案
|
// 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 entitylist = entitys.Where(x => x.Entity.GetType() == typeof(TrialQCQuestionAnswer)).Select(x => x.Entity as TrialQCQuestionAnswer).ToList();
|
||||||
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == entity.SubjectVisitId).FirstOrDefaultAsync();
|
var firstentity = entitylist.FirstOrDefault();
|
||||||
|
var subjectvisit = await _dbContext.SubjectVisit.Where(x => x.Id == firstentity.SubjectVisitId).FirstOrDefaultAsync();
|
||||||
subjectvisit = subjectvisit ?? new SubjectVisit();
|
subjectvisit = subjectvisit ?? new SubjectVisit();
|
||||||
type = type == "Update" ? "Add" : type;
|
if (type == "Add")
|
||||||
await InsertInspection<TrialQCQuestionAnswer>(item, type, x => new DataInspection()
|
|
||||||
{
|
{
|
||||||
SiteId= subjectvisit.SiteId,
|
await AddInspectionRecordAsync(new DataInspection()
|
||||||
SubjectId= subjectvisit.SubjectId,
|
{
|
||||||
SubjectVisitName= subjectvisit.VisitName,
|
SiteId = subjectvisit.SiteId,
|
||||||
GeneralId = x.Id,
|
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
|
#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<TrialQCQuestion> TrialQCQuestionConfigure { get; set; }
|
||||||
public virtual DbSet<QCQuestion> QCQuestionConfigure { 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; }
|
public virtual DbSet<CheckChallengeDialog> CheckChallengeDialog { get; set; }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue