Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
aba7dfdec9
|
@ -34,6 +34,7 @@ using Microsoft.AspNetCore.Diagnostics;
|
|||
using IRaCIS.Core.Application.MassTransit.Command;
|
||||
using IRaCIS.Core.Application.MassTransit.Consumer;
|
||||
using DocumentFormat.OpenXml.InkML;
|
||||
using IRaCIS.Core.Domain;
|
||||
|
||||
AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
|
||||
AppContext.SetSwitch("Npgsql.DisableDateTimeInfinityConversions", true);
|
||||
|
@ -149,13 +150,14 @@ builder.Services.AddJWTAuthSetup(_configuration);
|
|||
builder.Services.AddMediator(cfg =>
|
||||
{
|
||||
cfg.AddConsumer<ConsistencyCheckConsumer>();
|
||||
cfg.AddConsumer<AddUserLogTriggerConsumer>();
|
||||
});
|
||||
|
||||
// 添加 MassTransit 和 InMemory 传输
|
||||
builder.Services.AddMassTransit(cfg =>
|
||||
{
|
||||
// 注册消费者
|
||||
cfg.AddConsumer<AddSubjectTriggerConsumer>(); // 替换为你的消费者类
|
||||
//cfg.AddConsumer<AddSubjectTriggerConsumer>(); // 替换为你的消费者类
|
||||
|
||||
// 使用 InMemory 作为消息传递机制
|
||||
cfg.UsingInMemory((context, cfg) =>
|
||||
|
|
|
@ -81,12 +81,12 @@ namespace IRaCIS.Core.API
|
|||
triggerOptions.AddTrigger<AddCRCCliniaclDataTrigger>();
|
||||
triggerOptions.AddTrigger<SubjectVisitCheckPassedTrigger>();
|
||||
triggerOptions.AddTrigger<SubjectVisitFinalVisitTrigger>();
|
||||
triggerOptions.AddTrigger<SubjectVisitTrigger>();
|
||||
triggerOptions.AddTrigger<SubjectVisitScanDateTrigger>();
|
||||
triggerOptions.AddTrigger<TrialCriterionSignTrigger>();
|
||||
triggerOptions.AddTrigger<TableQuestionRowTrigger>();
|
||||
//triggerOptions.AddTrigger<AddlTrialUserTrigger>();
|
||||
triggerOptions.AddTrigger<VisitTaskIsFrontTaskNeedSignButNotSignTrigger>();
|
||||
triggerOptions.AddTrigger<VisitTaskIbeforeTrigger>();
|
||||
triggerOptions.AddTrigger<JudgeVisitTaskTrigger>();
|
||||
|
||||
triggerOptions.AddTrigger<UserLogTrigger>();
|
||||
|
||||
|
|
|
@ -85,4 +85,8 @@
|
|||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Triggers\TempAbandon\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -12648,6 +12648,24 @@
|
|||
构造函数注入
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.MassTransit.Consumer.AddSubjectTriggerConsumer">
|
||||
<summary>
|
||||
添加Subject 触发添加访视 不能代替 Trigger,稽查BatchId 不一致 暂时废弃
|
||||
</summary>
|
||||
<param name="_subjectVisitRepository"></param>
|
||||
<param name="_visitStageRepository"></param>
|
||||
<param name="_trialRepository"></param>
|
||||
<param name="_mapper"></param>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.MassTransit.Consumer.AddSubjectTriggerConsumer.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitStage},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},AutoMapper.IMapper)">
|
||||
<summary>
|
||||
添加Subject 触发添加访视 不能代替 Trigger,稽查BatchId 不一致 暂时废弃
|
||||
</summary>
|
||||
<param name="_subjectVisitRepository"></param>
|
||||
<param name="_visitStageRepository"></param>
|
||||
<param name="_trialRepository"></param>
|
||||
<param name="_mapper"></param>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.ViewModel.TaskAllocationRuleView">
|
||||
<summary> TaskAllocationRuleView 列表视图模型 </summary>
|
||||
</member>
|
||||
|
@ -16079,16 +16097,6 @@
|
|||
<param name="trialConfig"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.AddSubjectTrigger">
|
||||
<summary>
|
||||
添加访视计划 要给改项目下的所有Subject 添加该访视
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.AddSubjectTrigger.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitStage},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},AutoMapper.IMapper)">
|
||||
<summary>
|
||||
添加访视计划 要给改项目下的所有Subject 添加该访视
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.SubjectStateTrigger">
|
||||
<summary>
|
||||
|
||||
|
@ -16099,16 +16107,6 @@
|
|||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.SubjectVisitCheckPassedTrigger">
|
||||
<summary>
|
||||
处理 访视 末次评估 会影响Subject 状态
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.SubjectVisitCheckPassedTrigger.#ctor(IRaCIS.Core.Application.Service.IVisitTaskHelpeService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial},IRaCIS.Core.Application.Interfaces.ISubjectCriteriaEvaluationService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation})">
|
||||
<summary>
|
||||
处理 访视 末次评估 会影响Subject 状态
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.SubjectVisitFinalVisitTrigger">
|
||||
<summary>
|
||||
处理 访视 末次评估 会影响Subject 状态
|
||||
|
@ -16126,21 +16124,35 @@
|
|||
<param name="subjectVisit"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.SubjectVisitTrigger">
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.VisitTaskIsFrontTaskNeedSignButNotSignTrigger">
|
||||
<summary>
|
||||
处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期
|
||||
维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.SubjectVisitTrigger.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Application.Service.Reading.Interface.IClinicalAnswerService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomSeries},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy})">
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.VisitTaskIsFrontTaskNeedSignButNotSignTrigger.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitTask},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial})">
|
||||
<summary>
|
||||
处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期
|
||||
维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.SubjectVisitTrigger.UpdateSubjectVisitSubmitStateAsync(System.Guid)">
|
||||
<summary>处理提交状态</summary>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.AddSubjectTrigger">
|
||||
<summary>
|
||||
添加访视计划 要给改项目下的所有Subject 添加该访视
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.SubjectVisitTrigger.UpdateSubjectVisitImageDateAsync(System.Guid)">
|
||||
<summary>处理拍片日期</summary>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.AddSubjectTrigger.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitStage},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Trial},AutoMapper.IMapper)">
|
||||
<summary>
|
||||
添加访视计划 要给改项目下的所有Subject 添加该访视
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.SubjectVisitCheckPassedTrigger">
|
||||
<summary>
|
||||
处理 访视 末次评估 会影响Subject 状态
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.SubjectVisitCheckPassedTrigger.#ctor(IRaCIS.Core.Application.Service.IVisitTaskHelpeService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.Subject},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial},IRaCIS.Core.Application.Interfaces.ISubjectCriteriaEvaluationService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation})">
|
||||
<summary>
|
||||
处理 访视 末次评估 会影响Subject 状态
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.TrialCriterionSignTrigger">
|
||||
<summary>
|
||||
|
@ -16152,7 +16164,7 @@
|
|||
因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.VisitTaskIbeforeTrigger.AfterSave(EntityFrameworkCore.Triggered.ITriggerContext{IRaCIS.Core.Domain.Models.VisitTask},System.Threading.CancellationToken)">
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.JudgeVisitTaskTrigger.AfterSave(EntityFrameworkCore.Triggered.ITriggerContext{IRaCIS.Core.Domain.Models.VisitTask},System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
因为维护状态先后顺序导致 裁判任务关联的 任务上的JudgeVisitTaskId==nulll 在这里需要重新设置下
|
||||
|
||||
|
@ -16162,7 +16174,7 @@
|
|||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.VisitTaskIbeforeTrigger.BeforeSave(EntityFrameworkCore.Triggered.ITriggerContext{IRaCIS.Core.Domain.Models.VisitTask},System.Threading.CancellationToken)">
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.JudgeVisitTaskTrigger.BeforeSave(EntityFrameworkCore.Triggered.ITriggerContext{IRaCIS.Core.Domain.Models.VisitTask},System.Threading.CancellationToken)">
|
||||
<summary>
|
||||
比如 两个任务产生了裁判,然后其中一个人申请了重阅,影响了裁判,需要清理之前任务的上裁判id
|
||||
|
||||
|
@ -16173,16 +16185,30 @@
|
|||
<param name="cancellationToken"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.VisitTaskIsFrontTaskNeedSignButNotSignTrigger">
|
||||
<member name="T:IRaCIS.Core.Application.Triggers.SubjectVisitScanDateTrigger">
|
||||
<summary>
|
||||
维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
|
||||
处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.VisitTaskIsFrontTaskNeedSignButNotSignTrigger.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.VisitTask},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial})">
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.SubjectVisitScanDateTrigger.#ctor(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Application.Service.Reading.Interface.IClinicalAnswerService,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.DicomSeries},IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.NoneDicomStudy})">
|
||||
<summary>
|
||||
维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
|
||||
处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.SubjectVisitScanDateTrigger.UpdateSubjectVisitSubmitStateAsync(System.Guid)">
|
||||
<summary>
|
||||
处理提交状态
|
||||
</summary>
|
||||
<param name="subjectVisitId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Triggers.SubjectVisitScanDateTrigger.UpdateSubjectVisitImageDateAsync(System.Guid)">
|
||||
<summary>
|
||||
处理访视拍片日期
|
||||
</summary>
|
||||
<param name="subjectVisitId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Domain.Models.ReadModuleView.Id">
|
||||
<summary>
|
||||
Id(阅片期Id 或者 访视ID)
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
|
||||
|
||||
using AutoMapper;
|
||||
using IP2Region.Net.Abstractions;
|
||||
using IRaCIS.Core.Domain;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
using MassTransit;
|
||||
|
||||
namespace IRaCIS.Core.Application.MassTransit.Consumer;
|
||||
|
||||
|
||||
//国家|区域|省份|城市|ISP 缺省的地域信息默认是0
|
||||
//0|0|0|内网IP|内网IP
|
||||
// 中国|0|湖北省|武汉市|电信
|
||||
public class AddUserLogTriggerConsumer(ISearcher _searcher) : IConsumer<AddUserLogTriggerCommand>
|
||||
{
|
||||
public async Task Consume(ConsumeContext<AddUserLogTriggerCommand> context)
|
||||
{
|
||||
var userLog = context.Message.UserLog;
|
||||
|
||||
var ipinfo = _searcher.Search(userLog.IP);
|
||||
|
||||
userLog.IPRegion = string.Join('|', ipinfo.Split('|').TakeLast(3));
|
||||
|
||||
}
|
||||
}
|
|
@ -6,6 +6,13 @@ using MassTransit;
|
|||
|
||||
namespace IRaCIS.Core.Application.MassTransit.Consumer;
|
||||
|
||||
/// <summary>
|
||||
/// 添加Subject 触发添加访视 不能代替 Trigger,稽查BatchId 不一致 暂时废弃
|
||||
/// </summary>
|
||||
/// <param name="_subjectVisitRepository"></param>
|
||||
/// <param name="_visitStageRepository"></param>
|
||||
/// <param name="_trialRepository"></param>
|
||||
/// <param name="_mapper"></param>
|
||||
public class AddSubjectTriggerConsumer(IRepository<SubjectVisit> _subjectVisitRepository,
|
||||
|
||||
IRepository<VisitStage> _visitStageRepository,
|
||||
|
@ -34,5 +41,6 @@ public class AddSubjectTriggerConsumer(IRepository<SubjectVisit> _subjectVisitRe
|
|||
});
|
||||
|
||||
await _subjectVisitRepository.AddRangeAsync(svList);
|
||||
await _subjectVisitRepository.SaveChangesAsync();
|
||||
}
|
||||
}
|
|
@ -9,7 +9,6 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
/// </summary>
|
||||
public class AddSubjectTrigger(
|
||||
IRepository<SubjectVisit> _subjectVisitRepository,
|
||||
|
||||
IRepository<VisitStage> _visitStageRepository,
|
||||
IRepository<Trial> _trialRepository,
|
||||
IMapper _mapper) : IBeforeSaveTrigger<Subject>
|
|
@ -4,7 +4,7 @@ using IRaCIS.Core.Domain.Share;
|
|||
namespace IRaCIS.Core.Application.Triggers
|
||||
{
|
||||
|
||||
public class VisitTaskIbeforeTrigger(
|
||||
public class JudgeVisitTaskTrigger(
|
||||
IRepository<VisitTask> _visitTaskRepository,
|
||||
IRepository<ReadingJudgeInfo> _readingJudgeInfoRepository) : IBeforeSaveTrigger<VisitTask>, IAfterSaveTrigger<VisitTask>
|
||||
{
|
|
@ -7,7 +7,7 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
/// <summary>
|
||||
/// 处理 访视 1、提交状态 2、执行状态 3、最早最晚 拍片日期
|
||||
/// </summary>
|
||||
public class SubjectVisitTrigger(
|
||||
public class SubjectVisitScanDateTrigger(
|
||||
IRepository<SubjectVisit> _subjectVisitRepository,
|
||||
IClinicalAnswerService _iClinicalAnswerService,
|
||||
IRepository<DicomSeries> _dicomSeriesRepository,
|
||||
|
@ -106,7 +106,11 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
|
||||
}
|
||||
|
||||
/// <summary>处理提交状态</summary>
|
||||
/// <summary>
|
||||
/// 处理提交状态
|
||||
/// </summary>
|
||||
/// <param name="subjectVisitId"></param>
|
||||
/// <returns></returns>
|
||||
|
||||
public async Task UpdateSubjectVisitSubmitStateAsync(Guid subjectVisitId)
|
||||
{
|
||||
|
@ -127,7 +131,11 @@ namespace IRaCIS.Core.Application.Triggers
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>处理拍片日期</summary>
|
||||
/// <summary>
|
||||
/// 处理访视拍片日期
|
||||
/// </summary>
|
||||
/// <param name="subjectVisitId"></param>
|
||||
/// <returns></returns>
|
||||
private async Task UpdateSubjectVisitImageDateAsync(Guid subjectVisitId)
|
||||
{
|
||||
var svTime = _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => new
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
using IRaCIS.Core.Domain.BaseModel;
|
||||
using IRaCIS.Core.Domain.Models;
|
||||
|
||||
namespace IRaCIS.Core.Domain;
|
||||
|
||||
|
||||
public class AddUserLogTriggerCommand : DomainCommand
|
||||
{
|
||||
public UserLog UserLog { get; set; }
|
||||
}
|
|
@ -23,19 +23,32 @@ public static class DBContext_Ext
|
|||
{
|
||||
var changeTracker = context.ChangeTracker;
|
||||
|
||||
// 遍历 ChangeTracker 中的实体
|
||||
foreach (var entry in changeTracker.Entries<Subject>())
|
||||
{
|
||||
var subject = entry.Entity;
|
||||
//遍历 ChangeTracker 中的实体
|
||||
//foreach (var entry in changeTracker.Entries<UserLog>())
|
||||
//{
|
||||
// var userLog = entry.Entity;
|
||||
|
||||
if (entry.State == EntityState.Added)
|
||||
{
|
||||
// 受试者添加 触发访视自动添加
|
||||
var addedEvent = new AddSubjectTriggerCommand { SubjectId = subject.Id, TrialId = subject.TrialId, TrialSiteId = subject.TrialSiteId };
|
||||
// if (entry.State == EntityState.Added)
|
||||
// {
|
||||
// // 受试者添加 触发访视自动添加
|
||||
// var addCommand = new AddUserLogTriggerCommand { UserLog=userLog };
|
||||
|
||||
subject.AddDomainCommand(addedEvent);
|
||||
}
|
||||
}
|
||||
// userLog.AddDomainCommand(addCommand);
|
||||
// }
|
||||
//}
|
||||
|
||||
//foreach (var entry in changeTracker.Entries<Subject>())
|
||||
//{
|
||||
// var subject = entry.Entity;
|
||||
|
||||
// if (entry.State == EntityState.Added)
|
||||
// {
|
||||
// // 受试者添加 触发访视自动添加
|
||||
// var addedEvent = new AddSubjectTriggerCommand { SubjectId = subject.Id, TrialId = subject.TrialId, TrialSiteId = subject.TrialSiteId };
|
||||
|
||||
// subject.AddDomainCommand(addedEvent);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ using IRaCIS.Core.Domain.Models;
|
|||
using IRaCIS.Core.Domain.Share;
|
||||
using IRaCIS.Core.Infra.EFCore.Common;
|
||||
using MassTransit;
|
||||
using MassTransit.Mediator;
|
||||
using MassTransit.Transports;
|
||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
@ -13,7 +14,7 @@ namespace IRaCIS.Core.Infra.EFCore;
|
|||
|
||||
public class AuditEntityInterceptor(IUserInfo _userInfo,
|
||||
ILogger<AuditEntityInterceptor> _logger
|
||||
//, IBus _bus
|
||||
, IMediator _mediator
|
||||
) : SaveChangesInterceptor
|
||||
{
|
||||
|
||||
|
@ -30,7 +31,7 @@ public class AuditEntityInterceptor(IUserInfo _userInfo,
|
|||
//领域命令 (同一个事务提交的一些逻辑,类似Trigger 保存事务之前执行的一些逻辑)
|
||||
eventData.Context.AddDomainCommands();
|
||||
|
||||
//DispatchDomainCommands(eventData.Context).GetAwaiter().GetResult();
|
||||
DispatchDomainCommands(eventData.Context).GetAwaiter().GetResult();
|
||||
|
||||
//领域事件
|
||||
eventData.Context.AddDomainEvents();
|
||||
|
@ -230,26 +231,26 @@ public class AuditEntityInterceptor(IUserInfo _userInfo,
|
|||
|
||||
#region 领域命令分发
|
||||
|
||||
//private async Task DispatchDomainCommands(DbContext? context)
|
||||
//{
|
||||
// if (context == null) return;
|
||||
private async Task DispatchDomainCommands(DbContext? context)
|
||||
{
|
||||
if (context == null) return;
|
||||
|
||||
// var entities = context.ChangeTracker
|
||||
// .Entries<Entity>()
|
||||
// .Where(e => e.Entity.DomainCommands.Any())
|
||||
// .Select(e => e.Entity)
|
||||
// .ToList();
|
||||
var entities = context.ChangeTracker
|
||||
.Entries<Entity>()
|
||||
.Where(e => e.Entity.DomainCommands.Any())
|
||||
.Select(e => e.Entity)
|
||||
.ToList();
|
||||
|
||||
// var domainCommands = entities
|
||||
// .SelectMany(e => e.DomainCommands)
|
||||
// .ToList();
|
||||
var domainCommands = entities
|
||||
.SelectMany(e => e.DomainCommands)
|
||||
.ToList();
|
||||
|
||||
// entities.ForEach(e => e.ClearDomainCommands());
|
||||
entities.ForEach(e => e.ClearDomainCommands());
|
||||
|
||||
// foreach (var domainCommand in domainCommands)
|
||||
// {
|
||||
// await _bus.Send(domainCommand.GetType(), domainCommand);
|
||||
// }
|
||||
//}
|
||||
foreach (var domainCommand in domainCommands)
|
||||
{
|
||||
await _mediator.Send(domainCommand.GetType(), domainCommand);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
Loading…
Reference in New Issue