代码整理
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
bd8a8f744c
commit
57d8673bb2
|
@ -36,8 +36,6 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
|
||||
public IRaCISDBContext(DbContextOptions<IRaCISDBContext> options, IUserInfo userInfo, ILogger<IRaCISDBContext> logger
|
||||
|
||||
|
||||
//IAuditingData auditingData
|
||||
) : base(options)
|
||||
{
|
||||
_logger= logger;
|
||||
|
@ -49,36 +47,12 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
//比数据库上下文构造函数先执行 不能构造函数注入的方式使用配置文件
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
{
|
||||
optionsBuilder.UseLoggerFactory(MyLoggerFactory)
|
||||
|
||||
.ReplaceService<IModelCacheKeyFactory, DynamicModelCacheKeyFactoryDesignTimeSupport>();
|
||||
optionsBuilder.UseLoggerFactory(MyLoggerFactory);
|
||||
|
||||
optionsBuilder.UseExceptionProcessor();
|
||||
|
||||
//var config = new ConfigurationBuilder()
|
||||
// .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true).Build();
|
||||
//connectionString = config.GetSection("ConnectionStrings:RemoteNew").Value;
|
||||
//optionsBuilder.AddInterceptors(new AuditingInterceptor(connectionString));
|
||||
}
|
||||
|
||||
#region IModelCacheKeyFactory
|
||||
|
||||
|
||||
public class DynamicModelCacheKeyFactoryDesignTimeSupport : IModelCacheKeyFactory
|
||||
{
|
||||
public object Create(DbContext context, bool designTime)
|
||||
=> context is IRaCISDBContext dynamicContext
|
||||
? (context.GetType(), dynamicContext._userInfo.IsEn_Us, designTime)
|
||||
: (object)context.GetType();
|
||||
|
||||
public object Create(DbContext context)
|
||||
=> Create(context, false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
|
@ -89,7 +63,6 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
builder.HasNoKey();
|
||||
});
|
||||
|
||||
//modelBuilder.HasDbFunction(typeof(DbContext).GetMethod(nameof(GetTableList)));
|
||||
|
||||
modelBuilder.Entity<ReadingQuestionTrial>().HasQueryFilter(p => p.IsAdditional==false);
|
||||
|
||||
|
@ -117,20 +90,10 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
modelBuilder.Entity<VisitTask>().HasMany(t => t.TaskInfluenceList).WithOne(s => s.OriginalTask).HasForeignKey(t => t.OriginalTaskId);
|
||||
|
||||
|
||||
modelBuilder.Entity<VisitTask>().HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId);
|
||||
|
||||
|
||||
modelBuilder.Entity<VisitTask>().HasMany(t => t.GlobalVisitResultList).WithOne(s => s.GlobalVisitTask).HasForeignKey(t => t.GlobalTaskId);
|
||||
|
||||
modelBuilder.Entity<Dictionary>().HasMany(t => t.ChildList).WithOne(t => t.Parent);
|
||||
modelBuilder.Entity<SubjectUser>().HasMany(t => t.EarlierSubjectUserList).WithOne(t => t.OrignalSubjectUser);
|
||||
//if (_userInfo.IsEn_Us)
|
||||
//{
|
||||
// modelBuilder.Entity<Dictionary>().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.Value));
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// modelBuilder.Entity<Dictionary>().Property(t => t.MappedValue).HasColumnName(nameof(Domain.Models.Dictionary.ValueCN));
|
||||
//}
|
||||
|
||||
|
||||
//遍历实体模型手动配置
|
||||
|
@ -515,19 +478,6 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
public virtual DbSet<TrialEmailBlackUser> TrialEmailBlackUser { get; set; }
|
||||
|
||||
|
||||
#region 废弃
|
||||
|
||||
public override int SaveChanges()
|
||||
{
|
||||
|
||||
SetCommonEntityAuditInfo();
|
||||
AddAudit().GetAwaiter();
|
||||
return base.SaveChanges();
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
public override async Task<int> SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken())
|
||||
{
|
||||
// 采用触发器的方式 设置 CreateUserId CreateTime UpdateTime UpdateUserId 稽查实体里面没有这四个字段的值 因为先后顺序的原因
|
||||
|
@ -587,12 +537,7 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
|
||||
throw new DBSaveFailedException("SQL 事务失败,请检查环境。");
|
||||
}
|
||||
//catch (Exception ex)
|
||||
//{
|
||||
// _logger.LogError(ex.InnerException is null ? ex.Message : ex.InnerException?.Message);
|
||||
|
||||
// throw new DBSaveFailedException(ex.Message);
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
|
@ -701,68 +646,6 @@ namespace IRaCIS.Core.Infra.EFCore
|
|||
}
|
||||
|
||||
|
||||
|
||||
#region 更新审计信息 废弃
|
||||
|
||||
/// <summary>
|
||||
/// 事件绑定的方式 更新审计信息 废弃
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void UpdateAuitUser(object sender, EntityEntryEventArgs e)
|
||||
{
|
||||
if (e.Entry.Entity is IAuditUpdate updateEntity)
|
||||
{
|
||||
switch (e.Entry.State)
|
||||
{
|
||||
//case EntityState.Deleted:
|
||||
// entityWithTimestamps.UpdateTime = DateTime.UtcNow;
|
||||
// Console.WriteLine($"Stamped for delete: {e.Entry.Entity}");
|
||||
// break;
|
||||
case EntityState.Modified:
|
||||
updateEntity.UpdateTime = DateTime.UtcNow;
|
||||
updateEntity.UpdateUserId = _userInfo.Id;
|
||||
break;
|
||||
//添加的时候,更新审计字段也赋值
|
||||
case EntityState.Added:
|
||||
updateEntity.UpdateTime = DateTime.UtcNow;
|
||||
updateEntity.UpdateUserId = _userInfo.Id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (e.Entry.Entity is IAuditAdd addEntity)
|
||||
{
|
||||
switch (e.Entry.State)
|
||||
{
|
||||
case EntityState.Added:
|
||||
addEntity.CreateTime = DateTime.UtcNow;
|
||||
addEntity.CreateUserId = _userInfo.Id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (e.Entry.Entity is IAuditAddWithUserName addEntity2)
|
||||
{
|
||||
switch (e.Entry.State)
|
||||
{
|
||||
case EntityState.Added:
|
||||
addEntity2.CreateTime = DateTime.UtcNow;
|
||||
addEntity2.CreateUserId = _userInfo.Id;
|
||||
addEntity2.CreateUser = _userInfo.RealName;
|
||||
break;
|
||||
case EntityState.Deleted:
|
||||
addEntity2.CreateTime = DateTime.UtcNow;
|
||||
addEntity2.CreateUserId = _userInfo.Id;
|
||||
addEntity2.CreateUser = _userInfo.RealName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
public virtual DbSet<TaskAllocationRule> TaskAllocationRule { get; set; }
|
||||
|
||||
public virtual DbSet<VisitTask> VisitTask { get; set; }
|
||||
|
|
|
@ -43,20 +43,7 @@ public class AuditingInterceptor : ISaveChangesInterceptor
|
|||
#endregion
|
||||
|
||||
#region SavedChanges
|
||||
public int SavedChanges(SaveChangesCompletedEventData eventData, int result)
|
||||
{
|
||||
if (_audit.Entities.Count > 0)
|
||||
{
|
||||
var auditContext = eventData.Context as IRaCISDBContext;
|
||||
_audit.Succeeded = true;
|
||||
_audit.EndTime = DateTime.Now;
|
||||
auditContext.SaveChangesAudits.Add(_audit);
|
||||
auditContext.SaveChanges();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public async ValueTask<int> SavedChangesAsync(
|
||||
SaveChangesCompletedEventData eventData,
|
||||
int result,
|
||||
|
|
Loading…
Reference in New Issue