private static async Task EnsureRolesAdminUser <TContext>(TContext dbContext, IUserManager userManager, User user) where TContext : DbContext { var userRoleDbSet = dbContext.Set <UserRole>(); if (!await userRoleDbSet.AnyAsync()) { await userManager.AddToRoles(user, new List <string> { AdminRole }); } }
public async Task <Unit> Handle(CreateNewUserCommand request, CancellationToken cancellationToken) { var user = new User(request.Id, request.Name, request.Email, request.UserName); var createUserIdentityResult = await _userManager.CreateUser(user, request.Password); foreach (var erro in createUserIdentityResult?.Errors) { await Notify(erro.Code, erro.Description); } if (IsValid()) { var addToRolesIdentityResult = await _userManager.AddToRoles(user, request.Roles); foreach (var erro in addToRolesIdentityResult?.Errors) { await Notify(erro.Code, erro.Description); } } return(Unit.Value); }
public async Task <Unit> Handle(RegisterUserCommand request, CancellationToken cancellationToken) { var user = new ApplicationUser(request.Id, request.Name, request.Email.Address, request.Login.Value); var createUserIdentityResult = await _userManager.CreateUser(user, request.Password.Value); if (createUserIdentityResult.Succeeded) { var addToRolesIdentityResult = await _userManager.AddToRoles(user, DefaultRolesGroups.USER); foreach (var erro in addToRolesIdentityResult?.Errors) { await Notify(erro.Code, erro.Description); } } foreach (var erro in createUserIdentityResult?.Errors) { await Notify(erro.Code, erro.Description); } return(Unit.Value); }
protected override async Task <Unit> Process(UpdateUserCommand request, CancellationToken cancellationToken) { var applicationUser = await _userManager.GetById(request.Id); if (applicationUser == null) { await _notifiable.Notify("usuario", "Usuário não existe!"); return(Unit.Value); } applicationUser.Name = request.Name; applicationUser.Email = request.Email; var updateResult = await _userManager.Update(applicationUser); if (updateResult.Succeeded) { var roles = await _userManager.GetRoles(applicationUser); await _userManager.RemoveRoles(applicationUser, roles); var addRoles = await _userManager.AddToRoles(applicationUser, request.Roles); foreach (var erro in addRoles.Errors) { await _notifiable.Notify(erro.Code, erro.Description); } } foreach (var erro in updateResult.Errors) { await _notifiable.Notify(erro.Code, erro.Description); } return(Unit.Value); }