public async Task <Unit> Handle(Command request, CancellationToken cancellationToken) { var site = await _context.Sites.SingleOrDefaultAsync(x => x.SiteType == SiteTypeEnum.Blog); var user = await _userManager.FindByNameAsync(request.UserName); if (user == null) { throw new RestException(HttpStatusCode.NotFound, new { User = "******" }); } await _userManager.SetLockoutEnabledAsync(user, true); var result = await _userManager.SetLockoutEndDateAsync(user, DateTimeOffset.UtcNow.AddYears(100)); var refreshTokens = user.Tokens.Where(t => t.IsActive); if (refreshTokens.Count() > 0) { foreach (var rt in refreshTokens) { _jwtGenerator.RevokeToken(user, rt.RefreshToken); } } if (result.Succeeded) { await _logger.LogActivity( site.Id, ActivityCodeEnum.UserLockout, ActivitySeverityEnum.High, ActivityObjectEnum.User, $"The user {user.UserName} has been locked by Admin."); return(Unit.Value); } throw new Exception("Problem saving changes!"); }