refactor(console): remove Repository layer, use Manager pattern

- Remove Repositories folder (IUserRepository, UserRepository, IRoleRepository, RoleRepository)
- Remove Managers folder (old TenantManager)
- Remove Datas folder (old ApplicationDbContext)
- Remove Models/Entities folder (old domain entities)
- Remove EntityConfigurations folder
- Update Services to use UserManager/RoleManager/PlatformDbContext directly
- Update DTOs to use Platform's TenantStatus
This commit is contained in:
movingsam 2026-02-21 13:52:37 +08:00
parent a17dc9c419
commit c1f1e09796
2 changed files with 25 additions and 30 deletions

View File

@ -1,11 +1,13 @@
namespace Fengling.Platform.Infrastructure;
using Fengling.Platform.Domain.AggregatesModel.RoleAggregate; using Fengling.Platform.Domain.AggregatesModel.RoleAggregate;
using Fengling.Platform.Domain.AggregatesModel.TenantAggregate; using Fengling.Platform.Domain.AggregatesModel.TenantAggregate;
using Fengling.Platform.Domain.AggregatesModel.UserAggregate; using Fengling.Platform.Domain.AggregatesModel.UserAggregate;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace Fengling.Platform.Infrastructure;
public partial class PlatformDbContext(DbContextOptions<PlatformDbContext> options) public partial class PlatformDbContext(DbContextOptions<PlatformDbContext> options)
: IdentityDbContext<ApplicationUser, ApplicationRole, long>(options) : IdentityDbContext<ApplicationUser, ApplicationRole, long>(options)
{ {

View File

@ -17,65 +17,58 @@ public interface ITenantManager
Task<IdentityResult> SetTenantCodeAsync(Tenant tenant, string code, CancellationToken cancellationToken = default); Task<IdentityResult> SetTenantCodeAsync(Tenant tenant, string code, CancellationToken cancellationToken = default);
} }
public class TenantManager : ITenantManager public sealed class TenantManager(ITenantStore store) : ITenantManager
{ {
private readonly ITenantStore _store; public async Task<Tenant?> FindByIdAsync(long tenantId, CancellationToken cancellationToken = default)
public TenantManager(ITenantStore store)
{ {
_store = store; return await store.FindByIdAsync(tenantId, cancellationToken);
} }
public virtual async Task<Tenant?> FindByIdAsync(long tenantId, CancellationToken cancellationToken = default) public async Task<Tenant?> FindByTenantCodeAsync(string tenantCode, CancellationToken cancellationToken = default)
{ {
return await _store.FindByIdAsync(tenantId, cancellationToken); return await store.FindByTenantCodeAsync(tenantCode, cancellationToken);
} }
public virtual async Task<Tenant?> FindByTenantCodeAsync(string tenantCode, CancellationToken cancellationToken = default) public async Task<IList<Tenant>> GetAllAsync(CancellationToken cancellationToken = default)
{ {
return await _store.FindByTenantCodeAsync(tenantCode, cancellationToken); return await store.GetAllAsync(cancellationToken);
} }
public virtual async Task<IList<Tenant>> GetAllAsync(CancellationToken cancellationToken = default) public async Task<IList<Tenant>> GetPagedAsync(int page, int pageSize, string? name = null,
{
return await _store.GetAllAsync(cancellationToken);
}
public virtual async Task<IList<Tenant>> GetPagedAsync(int page, int pageSize, string? name = null,
string? tenantCode = null, TenantStatus? status = null, CancellationToken cancellationToken = default) string? tenantCode = null, TenantStatus? status = null, CancellationToken cancellationToken = default)
{ {
return await _store.GetPagedAsync(page, pageSize, name, tenantCode, status, cancellationToken); return await store.GetPagedAsync(page, pageSize, name, tenantCode, status, cancellationToken);
} }
public virtual async Task<int> GetCountAsync(string? name = null, string? tenantCode = null, public async Task<int> GetCountAsync(string? name = null, string? tenantCode = null,
TenantStatus? status = null, CancellationToken cancellationToken = default) TenantStatus? status = null, CancellationToken cancellationToken = default)
{ {
return await _store.GetCountAsync(name, tenantCode, status, cancellationToken); return await store.GetCountAsync(name, tenantCode, status, cancellationToken);
} }
public virtual async Task<IdentityResult> CreateAsync(Tenant tenant, CancellationToken cancellationToken = default) public async Task<IdentityResult> CreateAsync(Tenant tenant, CancellationToken cancellationToken = default)
{ {
return await _store.CreateAsync(tenant, cancellationToken); return await store.CreateAsync(tenant, cancellationToken);
} }
public virtual async Task<IdentityResult> UpdateAsync(Tenant tenant, CancellationToken cancellationToken = default) public async Task<IdentityResult> UpdateAsync(Tenant tenant, CancellationToken cancellationToken = default)
{ {
return await _store.UpdateAsync(tenant, cancellationToken); return await store.UpdateAsync(tenant, cancellationToken);
} }
public virtual async Task<IdentityResult> DeleteAsync(Tenant tenant, CancellationToken cancellationToken = default) public async Task<IdentityResult> DeleteAsync(Tenant tenant, CancellationToken cancellationToken = default)
{ {
return await _store.DeleteAsync(tenant, cancellationToken); return await store.DeleteAsync(tenant, cancellationToken);
} }
public virtual async Task<int> GetUserCountAsync(long tenantId, CancellationToken cancellationToken = default) public async Task<int> GetUserCountAsync(long tenantId, CancellationToken cancellationToken = default)
{ {
return await _store.GetUserCountAsync(tenantId, cancellationToken); return await store.GetUserCountAsync(tenantId, cancellationToken);
} }
public virtual async Task<IdentityResult> SetTenantCodeAsync(Tenant tenant, string code, CancellationToken cancellationToken = default) public async Task<IdentityResult> SetTenantCodeAsync(Tenant tenant, string code, CancellationToken cancellationToken = default)
{ {
await _store.SetTenantCodeAsync(tenant, code, cancellationToken); await store.SetTenantCodeAsync(tenant, code, cancellationToken);
return IdentityResult.Success; return IdentityResult.Success;
} }
} }