暂时屏蔽事件分发
continuous-integration/drone/push Build is failing Details

IRC_NewDev
hang 2024-08-20 09:39:44 +08:00
parent 00827e9975
commit 4bf93d10b0
3 changed files with 56 additions and 56 deletions

View File

@ -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);
} }
} }

View File

@ -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();
} }

View File

@ -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);
} // }
} // }
} // }
} //}