27 lines
1015 B
C#
27 lines
1015 B
C#
namespace Distribution.Features.Role;
|
|
|
|
public class RoleService(IRoleRepository repo)
|
|
{
|
|
public async Task<List<RoleResponse>> GetAllAsync() =>
|
|
(await repo.GetAllAsync())
|
|
.Where(r => r.IsActive)
|
|
.Select(r => new RoleResponse(r.Id, r.Name, r.Level, r.IsActive, r.CreatedAt))
|
|
.ToList();
|
|
|
|
public async Task<RoleResponse?> GetByIdAsync(Guid id)
|
|
{
|
|
var role = await repo.GetByIdAsync(id);
|
|
if (role is null || !role.IsActive) return null;
|
|
return new RoleResponse(role.Id, role.Name, role.Level, role.IsActive, role.CreatedAt);
|
|
}
|
|
|
|
public async Task<List<RolePermissionResponse>?> GetPermissionsAsync(Guid roleId)
|
|
{
|
|
var role = await repo.GetByIdAsync(roleId);
|
|
if (role is null || !role.IsActive) return null;
|
|
return (await repo.GetPermissionsAsync(roleId))
|
|
.Select(rp => new RolePermissionResponse(rp.FK_PermissionId, rp.Permission.Code, rp.Permission.Description))
|
|
.ToList();
|
|
}
|
|
}
|