RepositoryBase.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. 
  2. using FreeSql;
  3. using System.Threading.Tasks;
  4. using Admin.Core.Common.Auth;
  5. namespace Admin.Core.Repository
  6. {
  7. public abstract class RepositoryBase<TEntity,TKey> : BaseRepository<TEntity, TKey> where TEntity : class,new()
  8. {
  9. private readonly IUser _user;
  10. protected RepositoryBase(IFreeSql orm, IUnitOfWork uow, IUser user) : base(orm, null, null)
  11. {
  12. uow.Close();
  13. UnitOfWork = uow;
  14. _user = user;
  15. }
  16. public virtual Task<TDto> GetAsync<TDto>(TKey id)
  17. {
  18. return Select.WhereDynamic(id).ToOneAsync<TDto>();
  19. }
  20. public async Task<bool> SoftDeleteAsync(TKey id)
  21. {
  22. await UpdateDiy
  23. .SetDto(new { IsDeleted = true, ModifiedUserId = _user.Id, ModifiedUserName = _user.Name })
  24. .WhereDynamic(id)
  25. .ExecuteAffrowsAsync();
  26. return true;
  27. }
  28. public async Task<bool> SoftDeleteAsync(TKey[] ids)
  29. {
  30. await UpdateDiy
  31. .SetDto(new { IsDeleted = true, ModifiedUserId = _user.Id, ModifiedUserName = _user.Name })
  32. .WhereDynamic(ids)
  33. .ExecuteAffrowsAsync();
  34. return true;
  35. }
  36. }
  37. public abstract class RepositoryBase<TEntity> : RepositoryBase<TEntity, long> where TEntity : class, new()
  38. {
  39. protected RepositoryBase(IFreeSql orm, IUnitOfWork uow, IUser user) : base(orm, uow, user)
  40. {
  41. }
  42. }
  43. }