40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using EntityFrameworkCore.Triggered;
|
||
using IRaCIS.Core.Application.Service.Reading.Interface;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Threading.Tasks;
|
||
|
||
namespace IRaCIS.Core.Application.Triggers
|
||
{
|
||
public class AddCRCCliniaclDataTrigger : IAfterSaveTrigger<SubjectVisit>
|
||
{
|
||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
||
private readonly IRepository _repository;
|
||
private readonly IClinicalAnswerService _iClinicalAnswerService;
|
||
|
||
public AddCRCCliniaclDataTrigger(IRepository<SubjectVisit> subjectVisitRepository, IRepository repository, IClinicalAnswerService iClinicalAnswerService)
|
||
{
|
||
_subjectVisitRepository = subjectVisitRepository;
|
||
|
||
_repository = repository;
|
||
this._iClinicalAnswerService = iClinicalAnswerService;
|
||
}
|
||
|
||
//注意删除不能用扩展方法,必须用EF跟踪的实体 否则不能取到 SubjectVisitId
|
||
public async Task AfterSave(ITriggerContext<SubjectVisit> context, CancellationToken cancellationToken)
|
||
{
|
||
var subjectVisit = context.Entity;
|
||
|
||
await _iClinicalAnswerService.AutoAddCRCClinical(new Service.Reading.Dto.AutoAddClinicalInDto()
|
||
{
|
||
TrialId = subjectVisit.TrialId,
|
||
SubjectId = subjectVisit.SubjectId,
|
||
|
||
});
|
||
}
|
||
|
||
}
|
||
}
|