using Hcs.WebApp.Data; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; namespace Hcs.WebApp.Services { public class UsersService(IDbContextFactory factory, UserManager userManager) { private readonly IDbContextFactory factory = factory; private readonly UserManager userManager = userManager; public async Task> GetUsersWithRole() { using var context = factory.CreateDbContext(); return await (from user in context.Users join userRole in context.UserRoles on user.Id equals userRole.UserId join role in context.Roles on userRole.RoleId equals role.Id select new AppUserWithRole() { User = user, Role = role }).ToListAsync(); } public async Task CreateUser(string userName, string roleName, string password) { var user = new AppUser() { UserName = userName, NormalizedUserName = userName.Normalize() }; var result = await userManager.CreateAsync(user, password); if (result.Succeeded) { result = await userManager.AddToRolesAsync(user, [roleName]); } return result; } } }