public async Task <bool> Handle(Command request, CancellationToken cancellationToken) { User user = await _userManager.Users .Include(u => u.Person) .SingleOrDefaultAsync(u => u.NormalizedUserName == _userManager.NormalizeName(request.Username), cancellationToken); IList <string> currentRoles = await _userManager.GetRolesAsync(user); var isNewUser = currentRoles.Count == 0; if (!isNewUser) { await _userManager.RemoveFromRolesAsync(user, currentRoles); } await _userManager.AddToRolesAsync(user, request.RoleNames); return(isNewUser); }