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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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();
        }