public async Task <List <ContactResponse> > UpdateEpaOrganisationEmail(UpdateEpaOrganisationEmailRequest updateEpaOrganisationEmailRequest) { using (var request = new HttpRequestMessage(HttpMethod.Put, $"api/ao/assessment-organisations/update-email")) { return(await PostPutRequestWithResponse <UpdateEpaOrganisationEmailRequest, List <ContactResponse> >(request, updateEpaOrganisationEmailRequest)); } }
public async Task <IActionResult> UpdateEpaOrganisationEmail([FromBody] UpdateEpaOrganisationEmailRequest request) { try { _logger.LogInformation($"Amending the Organisation [{request.OrganisationId} with Email {request.Email}]"); var result = await _mediator.Send(request); return(Ok(result)); } catch (Exception ex) { _logger.LogError($@"Bad request, Message: [{ex.Message}]"); return(BadRequest()); } }
public async Task <List <ContactResponse> > Handle(UpdateEpaOrganisationEmailRequest request, CancellationToken cancellationToken) { var organisation = await _mediator.Send(new GetAssessmentOrganisationRequest { OrganisationId = request.OrganisationId }); var updateEpaOrganisationRequest = Mapper.Map <UpdateEpaOrganisationRequest>(organisation); updateEpaOrganisationRequest.Email = request.Email; await _mediator.Send(updateEpaOrganisationRequest); var updatedBy = request.UpdatedBy.HasValue ? await _contactQueryRepository.GetContactById(request.UpdatedBy.Value) : null; return(await _mediator.Send(new SendOrganisationDetailsAmendedEmailRequest { OrganisationId = request.OrganisationId, PropertyChanged = "Email address", ValueAdded = request.Email, Editor = updatedBy?.DisplayName ?? "EFSA Staff" })); }
public async Task <IActionResult> ChangeEmail(ChangeEmailViewModel vm) { var epaoid = _contextAccessor.HttpContext.User.FindFirst("http://schemas.portal.com/epaoid")?.Value; try { var organisation = await GetEpaOrganisation(epaoid); if (organisation == null) { return(RedirectToAction(nameof(HomeController.NotRegistered), nameof(HomeController).RemoveController())); } if (vm.ActionChoice == "Save") { if (ModelState.IsValid) { if (string.Equals(vm.Email, organisation.OrganisationData?.Email)) { return(RedirectToAction(nameof(OrganisationDetails))); } // only check if an email address has been entered - model has required validator if (await _validationApiClient.ValidateEmailAddress(vm.Email) == false) { ModelState.AddModelError(nameof(ChangeEmailViewModel.Email), "Enter a valid email address"); } } if (!ModelState.IsValid) { return(RedirectToAction(nameof(ChangeEmail))); } vm = new ChangeEmailViewModel { Email = vm.Email }; return(View("ChangeEmailConfirm", vm)); } else if (vm.ActionChoice == "Confirm") { var userId = _contextAccessor.HttpContext.User.FindFirst("UserId").Value; var request = new UpdateEpaOrganisationEmailRequest { Email = vm.Email, OrganisationId = organisation.OrganisationId, UpdatedBy = Guid.Parse(userId) }; var notifiedContacts = await _organisationsApiClient.UpdateEpaOrganisationEmail(request); if (notifiedContacts == null) { throw new Exception("Unable to update the email address"); } vm = new ChangeEmailViewModel { Email = vm.Email, Contacts = notifiedContacts }; return(View("ChangeEmailUpdated", vm)); } } catch (Exception e) { _logger.LogError(e, "Failed to change email address"); ModelState.AddModelError(nameof(ChangeEmailViewModel.Email), "Unable to update the email address at this time."); return(RedirectToAction(nameof(ChangeEmail))); } return(RedirectToAction(nameof(OrganisationDetails))); }