public async Task <IActionResult> UpdateEmailAddress([FromRoute][Required] int id, [FromBody] UpdateEmailAddressDto dto) { Logger.Trace($"Executing '{nameof(UpdateEmailAddress)}'."); var userId = HttpContext.GetUserId(); if (userId == null) { return(Unauthorized()); } var request = new UpdateEmailAddressRequest(id, dto.Address); request.SetUserId(userId.Value); try { var result = await _mediator.Send(request); return(result.GetResult()); } catch (Exception ex) { Logger.Error(ex, $"Unexpected error thrown while executing '{nameof(UpdateEmailAddressHandler)}'."); throw; } }
public async Task <EmailAddressResponse> Update(UpdateEmailAddressRequest request, AdminKey adminKey = null, HttpClient httpClient = null) { using (var api = new GetAddesssApi(adminKey ?? AdminKey, HttpClient ?? httpClient)) { return(await api.EmailAddress.Update(request)); } }
public async Task Should_ReturnBadRequest_When_PassInvalidEmailAddress(string updatedEmailAddress, int emailAddressId, int userId) { var cancellationToken = new CancellationToken(); var emailAddressValidator = Substitute.For <IEmailAddressValidatorUtility>(); emailAddressValidator.ValidateMail("*****@*****.**").Returns(false); var databaseContext = Create.MockedDbContextFor <DatabaseContext>(); databaseContext.SaveChanges(); var request = new UpdateEmailAddressRequest(emailAddressId, updatedEmailAddress); request.SetUserId(userId); var result = await new UpdateEmailAddressHandler(databaseContext, emailAddressValidator).Handle(request, cancellationToken); Assert.Multiple(() => { Assert.IsFalse(result.Success); Assert.AreEqual(result.StatusCode, HttpStatusCode.BadRequest); Assert.IsTrue(result.Message.Contains("Invalid email address")); }); }
public async Task Should_ReturnNotFound_When_PassNotExistingEmailAddressForUser(string updatedEmailAddress, int emailAddressId, int userId) { var cancellationToken = new CancellationToken(); var emailAddressValidator = Substitute.For <IEmailAddressValidatorUtility>(); emailAddressValidator.ValidateMail("*****@*****.**").Returns(true); var databaseContext = Create.MockedDbContextFor <DatabaseContext>(); databaseContext.Set <MailingGroup>().Add(new MailingGroup() { Id = 1, Name = "MailingGroupName1", SystemUserId = 1 }); databaseContext.Set <MailingGroup>().Add(new MailingGroup() { Id = 2, Name = "MailingGroupName2", SystemUserId = 2 }); databaseContext.Set <EmailAddress>().Add(new EmailAddress() { Id = 1, Value = "*****@*****.**", MailingGroupId = 2 }); databaseContext.Set <EmailAddress>().Add(new EmailAddress() { Id = 2, Value = "*****@*****.**", MailingGroupId = 2 }); databaseContext.Set <EmailAddress>().Add(new EmailAddress() { Id = 3, Value = "*****@*****.**", MailingGroupId = 2 }); databaseContext.SaveChanges(); var request = new UpdateEmailAddressRequest(emailAddressId, updatedEmailAddress); request.SetUserId(userId); var result = await new UpdateEmailAddressHandler(databaseContext, emailAddressValidator).Handle(request, cancellationToken); Assert.Multiple(() => { Assert.IsFalse(result.Success); Assert.AreEqual(result.StatusCode, HttpStatusCode.NotFound); }); }
public async static Task <EmailAddressResponse> Update(GetAddesssApi api, string path, AdminKey adminKey, UpdateEmailAddressRequest request) { if (api == null) { throw new ArgumentNullException(nameof(api)); } api.SetAuthorizationKey(adminKey); var response = await api.Put(path, request); var body = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { return(new EmailAddressResponse.Success((int)response.StatusCode, response.ReasonPhrase, body, request.NewEmailAddress)); } if (response.StatusCode == System.Net.HttpStatusCode.BadRequest) { var message = GetMessage(body); return(new EmailAddressResponse.FailedInvalidEmailAddress((int)response.StatusCode, response.ReasonPhrase, body, message)); } return(new EmailAddressResponse.Failed((int)response.StatusCode, response.ReasonPhrase, body)); }
public async Task <EmailAddressResponse> Update(UpdateEmailAddressRequest request) { return(await Update(Api, Path, this.AdminKey, request)); }