Class SeedPermissionsRepository
- Namespace
- KadicAuth.Infrastructure.Repositories
- Assembly
- KadicAuth.Infrastructure.dll
public class SeedPermissionsRepository : ISeedPermissionsRepository
- Inheritance
-
objectSeedPermissionsRepository
- Implements
Constructors
SeedPermissionsRepository(AuthDbContext)
public SeedPermissionsRepository(AuthDbContext context)
Parameters
contextAuthDbContext
Methods
AddModule(Module)
Encola un módulo. No persiste: hace falta SaveChangesAsync(CancellationToken).
public void AddModule(Module module)
Parameters
moduleModule
AddPermission(Permission)
Encola un permiso. No persiste.
public void AddPermission(Permission permission)
Parameters
permissionPermission
AddSubModule(SubModule)
Encola un submódulo. No persiste.
public void AddSubModule(SubModule subModule)
Parameters
subModuleSubModule
BulkAssignToTenantRolesAsync(List<Guid>, List<Guid>, CancellationToken)
Inserta en TenantRolePermissions todos los pares (tenantRoleId, permissionId) que no existan aún. Devuelve la cantidad de filas insertadas.
public Task<int> BulkAssignToTenantRolesAsync(List<Guid> tenantRoleIds, List<Guid> permissionIds, CancellationToken ct = default)
Parameters
tenantRoleIdsList<Guid>permissionIdsList<Guid>ctCancellationToken
Returns
- Task<int>
CreatePermissionAsync(Permission, CancellationToken)
public Task<Permission> CreatePermissionAsync(Permission permission, CancellationToken ct = default)
Parameters
permissionPermissionctCancellationToken
Returns
- Task<Permission>
CreateSubModuleAsync(SubModule, CancellationToken)
public Task<SubModule> CreateSubModuleAsync(SubModule subModule, CancellationToken ct = default)
Parameters
subModuleSubModulectCancellationToken
Returns
- Task<SubModule>
ExecuteInTransactionAsync<T>(Func<CancellationToken, Task<T>>, CancellationToken)
Ejecuta work dentro de una transacción: o entra todo, o no
entra nada. Antes cada fila hacía su propio SaveChanges, así que un fallo
a mitad de siembra dejaba un estado parcial imposible de distinguir de uno bueno.
public Task<T> ExecuteInTransactionAsync<T>(Func<CancellationToken, Task<T>> work, CancellationToken ct = default)
Parameters
workFunc<CancellationToken, Task<T>>ctCancellationToken
Returns
- Task<T>
Type Parameters
T
GetAllActiveTenantRoleIdsAsync(CancellationToken)
Devuelve los IDs de todos los TenantRoles activos de todos los tenants.
public Task<List<Guid>> GetAllActiveTenantRoleIdsAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<List<Guid>>
GetAllModuleKeysAsync(CancellationToken)
public Task<HashSet<string>> GetAllModuleKeysAsync(CancellationToken ct)
Parameters
ctCancellationToken
Returns
- Task<HashSet<string>>
GetAllModulesByKeyAsync(CancellationToken)
Todos los módulos, indexados por ModuleKey (case-insensitive).
public Task<Dictionary<string, Module>> GetAllModulesByKeyAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<Dictionary<string, Module>>
GetAllPermissionsForDiffAsync(CancellationToken)
public Task<Dictionary<string, (Guid Id, string Name, string? Description, Guid SubModuleId)>> GetAllPermissionsForDiffAsync(CancellationToken ct)
Parameters
ctCancellationToken
Returns
- Task<Dictionary<string, (Guid Id, string Name, string Description, Guid SubModuleId)>>
GetAllPermissionsTrackedAsync(CancellationToken)
Todos los permisos, rastreados por el contexto para poder actualizarlos.
public Task<List<Permission>> GetAllPermissionsTrackedAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<List<Permission>>
GetAllSubModulesAsync(CancellationToken)
Todos los submódulos, para indexar por (ModuleId, Slug).
public Task<List<SubModule>> GetAllSubModulesAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<List<SubModule>>
GetModuleByKeyAsync(string, CancellationToken)
public Task<Module?> GetModuleByKeyAsync(string moduleKey, CancellationToken ct = default)
Parameters
moduleKeystringctCancellationToken
Returns
- Task<Module>
GetPermissionByCodeAsync(string, CancellationToken)
public Task<Permission?> GetPermissionByCodeAsync(string code, CancellationToken ct = default)
Parameters
codestringctCancellationToken
Returns
- Task<Permission>
GetSubModuleBySlugAsync(Guid, string, CancellationToken)
Busca un submódulo por slug, ESCOPEADO al módulo dado. Distintos módulos pueden declarar submódulos con el mismo slug de forma legítima (ej. UiMenu espeja el nombre de cada feature real) — nunca buscar por slug sin filtrar por ModuleId, o se reutilizará por error el submódulo de otro módulo (bug real encontrado: UI_MENU."accounts-receivable" vs ADJUSTMENT."accounts-receivable").
public Task<SubModule?> GetSubModuleBySlugAsync(Guid moduleId, string slug, CancellationToken ct = default)
Parameters
moduleIdGuidslugstringctCancellationToken
Returns
- Task<SubModule>
GetTenantRoleIdsAsync(List<Guid>?, List<string>?, List<Guid>?, CancellationToken)
Tenant-roles activos acotados por tenant, rol o tenant-role. Los criterios se
combinan con OR; si no se indica ninguno, no devuelve nada — el modo
Selected sin selección no debe caer en "todos" por accidente.
public Task<List<Guid>> GetTenantRoleIdsAsync(List<Guid>? tenantIds, List<string>? roleCodes, List<Guid>? tenantRoleIds, CancellationToken ct = default)
Parameters
tenantIdsList<Guid>roleCodesList<string>tenantRoleIdsList<Guid>ctCancellationToken
Returns
- Task<List<Guid>>
GetUnassignedPermissionsAsync(CancellationToken)
public Task<List<(Guid Id, string Code, string Name, string? SubModuleName)>> GetUnassignedPermissionsAsync(CancellationToken ct)
Parameters
ctCancellationToken
Returns
- Task<List<(Guid Id, string Code, string Name, string SubModuleName)>>
SaveChangesAsync(CancellationToken)
Persiste todo lo encolado en una sola operación.
public Task<int> SaveChangesAsync(CancellationToken ct = default)
Parameters
ctCancellationToken
Returns
- Task<int>