public async Task AdminShouldBeAbleToResetUserPassword(CreateCustomerUserModel createCustomerUserModel)
        {
            var client = _webbApplicationFactory.CreateClient();
            await Utils.CreateCustomer(client, createCustomerUserModel);

            await Utils.ActivateUserAsync(client, createCustomerUserModel.Email);

            await Utils.LoginAdminAsync(client);

            var model = new ChangePasswordByAdminModel
            {
                NewPassword = "******",
                SubjectId   = createCustomerUserModel.Id,
            };

            (await client.PostAsync("api/v1/users/reset-user-password-by-admin", model.ToJsonContent()))
            .EnsureSuccessStatusCode();
            var extra = new Dictionary <string, string>
            {
                { "deviceId", "test-device1" },
            };
            var tokenResponse = await Utils.RequestPasswordTokenAsync(client, createCustomerUserModel.Email, model.NewPassword, extra);

            tokenResponse.IsError.Should().BeFalse();
        }
        public async Task <IActionResult> ResetPasswordByAdminAsync(ChangePasswordByAdminModel model)
        {
            var user = await _userManager.FindByIdAsync(model.SubjectId);

            var token = await _userManager.GeneratePasswordResetTokenAsync(user);

            await _userManager.ResetPasswordAsync(user, token, model.NewPassword);

            _dbContext.ActivityLogs.Add(new ActivityLog(ActivityLogType.PasswordResetByAdmin, user.Id, User.Identity.Name));
            await _dbContext.SaveChangesAsync();

            return(Ok());
        }