暂时屏蔽事件分发
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
parent
00827e9975
commit
4bf93d10b0
|
@ -310,7 +310,7 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
{
|
{
|
||||||
if (!ClosedTime.HasValue)
|
if (!ClosedTime.HasValue)
|
||||||
return "";
|
return "";
|
||||||
else return string.Format("{0}d {1}h {2}min", (ClosedTime - CreateTime)?.Days, (ClosedTime - CreateTime)?.Hours, (ClosedTime - CreateTime)?.Minutes);
|
else return string.Format("{0}d {1}h {2}m", (ClosedTime - CreateTime)?.Days, (ClosedTime - CreateTime)?.Hours, (ClosedTime - CreateTime)?.Minutes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var query = _trialRepository.AsQueryable().IgnoreQueryFilters()
|
var query = _trialRepository.AsQueryable()
|
||||||
.WhereIf(!string.IsNullOrEmpty(searchParam.TrialStatusStr), o => o.TrialStatusStr.Contains(searchParam.TrialStatusStr))
|
.WhereIf(!string.IsNullOrEmpty(searchParam.TrialStatusStr), o => o.TrialStatusStr.Contains(searchParam.TrialStatusStr))
|
||||||
.WhereIf(searchParam.SponsorId != null, o => o.SponsorId == searchParam.SponsorId)
|
.WhereIf(searchParam.SponsorId != null, o => o.SponsorId == searchParam.SponsorId)
|
||||||
.WhereIf(searchParam.Expedited != null, o => o.Expedited == searchParam.Expedited)
|
.WhereIf(searchParam.Expedited != null, o => o.Expedited == searchParam.Expedited)
|
||||||
|
@ -103,7 +103,7 @@ namespace IRaCIS.Application.Services
|
||||||
//过滤废除的项目
|
//过滤废除的项目
|
||||||
public async Task<List<TrialSelectDTO>> GetTrialSelect()
|
public async Task<List<TrialSelectDTO>> GetTrialSelect()
|
||||||
{
|
{
|
||||||
return await _trialRepository.AsQueryable().IgnoreQueryFilters()
|
return await _trialRepository.AsQueryable()
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.Admin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.OP, t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id) && t.IsDeleted == false)
|
.WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.Admin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.OP, t => t.TrialUserList.Any(t => t.UserId == _userInfo.Id) && t.IsDeleted == false)
|
||||||
|
|
||||||
.ProjectTo<TrialSelectDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
.ProjectTo<TrialSelectDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
@ -119,7 +119,7 @@ namespace IRaCIS.Application.Services
|
||||||
[HttpGet("{projectId:guid}")]
|
[HttpGet("{projectId:guid}")]
|
||||||
public async Task<TrialDetailDTO> GetTrialInfoAndLockState(Guid projectId)
|
public async Task<TrialDetailDTO> GetTrialInfoAndLockState(Guid projectId)
|
||||||
{
|
{
|
||||||
return (await _trialRepository.Where(o => o.Id == projectId).IgnoreQueryFilters().ProjectTo<TrialDetailDTO>(_mapper.ConfigurationProvider, new {isEn_Us = _userInfo.IsEn_Us }).FirstOrDefaultAsync()).IfNullThrowException();
|
return (await _trialRepository.Where(o => o.Id == projectId).ProjectTo<TrialDetailDTO>(_mapper.ConfigurationProvider, new {isEn_Us = _userInfo.IsEn_Us }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,59 +1,59 @@
|
||||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
//using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||||
using Microsoft.EntityFrameworkCore;
|
//using Microsoft.EntityFrameworkCore;
|
||||||
using System;
|
//using System;
|
||||||
using System.Collections.Generic;
|
//using System.Collections.Generic;
|
||||||
using System.Linq;
|
//using System.Linq;
|
||||||
using System.Text;
|
//using System.Text;
|
||||||
using System.Threading;
|
//using System.Threading;
|
||||||
using System.Threading.Tasks;
|
//using System.Threading.Tasks;
|
||||||
using IRaCIS.Core.Domain.Models;
|
//using IRaCIS.Core.Domain.Models;
|
||||||
using MassTransit;
|
//using MassTransit;
|
||||||
|
|
||||||
namespace IRaCIS.Core.Infra.EFCore.Interceptor
|
//namespace IRaCIS.Core.Infra.EFCore.Interceptor
|
||||||
{
|
//{
|
||||||
public class DispatchDomainEventsInterceptor(IPublishEndpoint publishEndpoint) : SaveChangesInterceptor
|
// public class DispatchDomainEventsInterceptor(IPublishEndpoint publishEndpoint) : SaveChangesInterceptor
|
||||||
{
|
// {
|
||||||
|
|
||||||
//领域事件通常与数据变更密切相关。如果在 SaveChanges 之前发布事件,有可能事件发布时的数据状态还没有被持久化到数据库。这可能导致事件消费者看到的是一个不一致的状态
|
// //领域事件通常与数据变更密切相关。如果在 SaveChanges 之前发布事件,有可能事件发布时的数据状态还没有被持久化到数据库。这可能导致事件消费者看到的是一个不一致的状态
|
||||||
|
|
||||||
/// <summary>
|
// /// <summary>
|
||||||
/// 在事务提交之后分发事件
|
// /// 在事务提交之后分发事件
|
||||||
/// </summary>
|
// /// </summary>
|
||||||
/// <param name="eventData"></param>
|
// /// <param name="eventData"></param>
|
||||||
/// <param name="result"></param>
|
// /// <param name="result"></param>
|
||||||
/// <param name="cancellationToken"></param>
|
// /// <param name="cancellationToken"></param>
|
||||||
/// <returns></returns>
|
// /// <returns></returns>
|
||||||
public override async ValueTask<int> SavedChangesAsync(SaveChangesCompletedEventData eventData, int result,
|
// public override async ValueTask<int> SavedChangesAsync(SaveChangesCompletedEventData eventData, int result,
|
||||||
CancellationToken cancellationToken = default)
|
// CancellationToken cancellationToken = default)
|
||||||
{
|
// {
|
||||||
await DispatchDomainEvents(eventData.Context);
|
// await DispatchDomainEvents(eventData.Context);
|
||||||
return await base.SavedChangesAsync(eventData, result, cancellationToken);
|
// return await base.SavedChangesAsync(eventData, result, cancellationToken);
|
||||||
}
|
// }
|
||||||
public override int SavedChanges(SaveChangesCompletedEventData eventData, int result)
|
// public override int SavedChanges(SaveChangesCompletedEventData eventData, int result)
|
||||||
{
|
// {
|
||||||
DispatchDomainEvents(eventData.Context).GetAwaiter().GetResult();
|
// DispatchDomainEvents(eventData.Context).GetAwaiter().GetResult();
|
||||||
return base.SavedChanges(eventData, result);
|
// return base.SavedChanges(eventData, result);
|
||||||
}
|
// }
|
||||||
private async Task DispatchDomainEvents(DbContext? context)
|
// private async Task DispatchDomainEvents(DbContext? context)
|
||||||
{
|
// {
|
||||||
if (context == null) return;
|
// if (context == null) return;
|
||||||
|
|
||||||
var entities = context.ChangeTracker
|
// var entities = context.ChangeTracker
|
||||||
.Entries<Entity>()
|
// .Entries<Entity>()
|
||||||
.Where(e => e.Entity.DomainEvents.Any())
|
// .Where(e => e.Entity.DomainEvents.Any())
|
||||||
.Select(e => e.Entity)
|
// .Select(e => e.Entity)
|
||||||
.ToList();
|
// .ToList();
|
||||||
|
|
||||||
var domainEvents = entities
|
// var domainEvents = entities
|
||||||
.SelectMany(e => e.DomainEvents)
|
// .SelectMany(e => e.DomainEvents)
|
||||||
.ToList();
|
// .ToList();
|
||||||
|
|
||||||
entities.ForEach(e => e.ClearDomainEvents());
|
// entities.ForEach(e => e.ClearDomainEvents());
|
||||||
|
|
||||||
foreach (var domainEvent in domainEvents)
|
// foreach (var domainEvent in domainEvents)
|
||||||
{
|
// {
|
||||||
await publishEndpoint.Publish(domainEvent);
|
// await publishEndpoint.Publish(domainEvent);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
Loading…
Reference in New Issue