BaseRepositoryWorkflow.cs 1.0 KB

123456789101112131415161718192021222324252627
  1. using System.Linq.Expressions;
  2. using Hotline.Repository.SqlSugar.DataPermissions;
  3. using Hotline.Repository.SqlSugar.Extensions;
  4. using SqlSugar;
  5. using XF.Domain.Entities;
  6. using XF.Domain.Repository;
  7. namespace Hotline.Repository.SqlSugar;
  8. public abstract class BaseRepositoryWorkflow<TEntity> : BaseRepository<TEntity>, IRepositoryWorkflow<TEntity, string>
  9. where TEntity : class, IEntity<string>, IHasCreationTime, IDataPermission, IWorkflow, new()
  10. {
  11. private readonly IDataPermissionFilterBuilder _dataPermissionFilterBuilder;
  12. protected BaseRepositoryWorkflow(ISugarUnitOfWork<HotlineDbContext> uow, IDataPermissionFilterBuilder dataPermissionFilterBuilder) : base(uow, dataPermissionFilterBuilder)
  13. {
  14. _dataPermissionFilterBuilder = dataPermissionFilterBuilder;
  15. }
  16. public ISugarQueryable<TEntity> Queryable(bool includeDeleted = false)
  17. {
  18. if (includeDeleted)
  19. Db.QueryFilter.Clear();
  20. return Db.Queryable<TEntity>().WorkflowDataFiltering(_dataPermissionFilterBuilder);
  21. }
  22. }