26 lines
722 B
C#
26 lines
722 B
C#
using Microsoft.EntityFrameworkCore;
|
|
|
|
public class UserDirectoryService : IUserDirectoryService
|
|
{
|
|
private readonly AppDbContext _db;
|
|
|
|
public UserDirectoryService(AppDbContext db) => _db = db;
|
|
|
|
public async Task<IReadOnlyList<UserSummaryResponse>> ListByRoleAsync(UserRole? role)
|
|
{
|
|
var query = _db.Users.AsNoTracking().Where(u => u.IsActive);
|
|
|
|
if (role.HasValue)
|
|
query = query.Where(u => u.Role == role.Value);
|
|
|
|
return await query
|
|
.OrderBy(u => u.FullName)
|
|
.Select(u => new UserSummaryResponse(
|
|
u.Id,
|
|
u.Username,
|
|
u.FullName,
|
|
u.Role.ToDbString()))
|
|
.ToListAsync();
|
|
}
|
|
}
|