| using SqlSugar; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Reflection; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEA_Core.DB.Models; | 
| using WIDESEA_Core.Tenants; | 
|   | 
| namespace WIDESEA_Core.DB | 
| { | 
|     public class RepositorySetting | 
|     { | 
|         private static readonly Lazy<IEnumerable<Type>> AllEntitys = new(() => | 
|         { | 
|             var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory; | 
|             var referencedAssemblies = System.IO.Directory.GetFiles(path, MainDb.AssemblyName).Select(Assembly.LoadFrom).FirstOrDefault(); | 
|             return referencedAssemblies | 
|                 .GetTypes() | 
|                 .Where(t => t.IsClass && !t.IsAbstract && t.IsSubclassOf(typeof(BaseEntity))) | 
|                 .Where(it => it.FullName != null && it.FullName.StartsWith(MainDb.EntityNameSpace)); | 
|         }); | 
|   | 
|         public static IEnumerable<Type> Entitys => AllEntitys.Value; | 
|   | 
|         /// <summary> | 
|         /// 配置实体软删除过滤器<br/> | 
|         /// 统一过滤 软删除 无需自己写条件 | 
|         /// </summary> | 
|         public static void SetDeletedEntityFilter(SqlSugarScopeProvider db) | 
|         { | 
|             //db.QueryFilter.AddTableFilter<IDeleteFilter>(it => it.IsDeleted == false); | 
|         } | 
|   | 
|         /// <summary> | 
|         /// 配置租户 | 
|         /// </summary> | 
|         public static void SetTenantEntityFilter(SqlSugarScopeProvider db) | 
|         { | 
|             if (App.User is not { UserId: > 0, TenantId: > 0 }) | 
|             { | 
|                 return; | 
|             } | 
|   | 
|             //多租户 单表 | 
|             //db.QueryFilter.AddTableFilter<ITenantEntity>(it => it.TenantId == App.User.TenantId || it.TenantId == 0); | 
|   | 
|             //多租户 多表 | 
|             //db.SetTenantTable(App.User.TenantId.ToString()); | 
|         } | 
|     } | 
| } |