public async Task <IActionResult> LockoutUser(UserLockoutModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByEmailAsync(model.Email);

                if (model.LockoutTime.HasValue && model.LockoutTime > DateTime.Now) // locks the user out
                {
                    await _userManager.SetLockoutEndDateAsync(user,
                                                              new DateTimeOffset(model.LockoutTime.Value.ToUniversalTime()));

                    return(RedirectToAction(nameof(ManageUser), new { userId = user.Id }));
                }

                await _userManager.SetLockoutEndDateAsync(user, null);

                return(RedirectToAction(nameof(ManageUser), new { userId = user.Id }));
            }

            return(View(model));
        }
        public async Task <IActionResult> ChangeUserLockout([FromBody] UserLockoutModel lockoutModel)
        {
            if (!ModelState.IsValid)
            {
                return(ErrorHelper.Error(ModelState));
            }

            var user = await _userManager.FindByIdAsync(lockoutModel.UserId);

            if (user == null)
            {
                return(ErrorHelper.Error(new[] { $"Unable to load user with ID '{lockoutModel.UserId}'." }));
            }

            var result = await _userManager.SetLockoutEnabledAsync(user, lockoutModel.IsLockout);

            if (!result.Succeeded)
            {
                return(ErrorHelper.Error(result));
            }

            return(Ok(new { user.Id, UserName = user.Email, IsLockout = user.LockoutEnabled, IsEmailConfirmed = user.EmailConfirmed }));
        }