public async Task <IActionResult> UpdateEmailSettings([FromBody] UpdateEmailSettings model) { var errors = new List <RequestError>(); if (model.UpdateEmailConsentGiven == null) { errors.Add(new RequestError { Error = RequestErrorType.IsBlank, Path = "updateEmailConsentGiven" }); } if (errors.Any()) { _logger.LogWarning(EventIds.ValidationFailure, "Update Enail Settings: failed validation : {0}", string.Join(";", errors.Select(e => e.Path + "," + e.Error))); return(BadRequest(errors)); } var user = await _userManager.GetUserAsync(User); user.UpdateEmailConsentGiven = model.UpdateEmailConsentGiven.Value; var res = await _userManager.UpdateAsync(user); if (res.Succeeded) { return(NoContent()); } return(StatusCode((int)HttpStatusCode.InternalServerError)); }
public async Task UpdateEmailSettingsReturnsErrorIfNoConsentValue() { TestHelpers.CreateUserManagerWithUser(out var testUser); var controller = CreateLoggedInController(testUser); var model = new UpdateEmailSettings { UpdateEmailConsentGiven = null }; var res = await controller.UpdateEmailSettings(model); res.Should().BeIsBlankResultForPath("updateEmailConsentGiven"); var newUser = await TestHelpers.CreateUserManager().FindByIdAsync(testUser.Id); newUser.UpdateEmailConsentGiven.Should().Be(testUser.UpdateEmailConsentGiven); }
public async Task UpdateEmailSettingsUpdatesValue() { var userManger = TestHelpers.CreateUserManagerWithUser(out var testUser); testUser.UpdateEmailConsentGiven = true; await userManger.UpdateAsync(testUser); var controller = CreateLoggedInController(testUser); var model = new UpdateEmailSettings { UpdateEmailConsentGiven = false }; var res = await controller.UpdateEmailSettings(model); res.Should().BeOfType <NoContentResult>(); var newUser = await TestHelpers.CreateUserManager().FindByIdAsync(testUser.Id); newUser.UpdateEmailConsentGiven.Should().BeFalse(); }