public async Task <List <ContactResponse> > UpdateEpaOrganisationWebsiteLink(UpdateEpaOrganisationWebsiteLinkRequest updateEpaOrganisationWebsiteLinkRequest) { using (var request = new HttpRequestMessage(HttpMethod.Put, $"api/ao/assessment-organisations/update-website-link")) { return(await PostPutRequestWithResponse <UpdateEpaOrganisationWebsiteLinkRequest, List <ContactResponse> >(request, updateEpaOrganisationWebsiteLinkRequest)); } }
public async Task <IActionResult> UpdateEpaOrganisationWebsiteLink([FromBody] UpdateEpaOrganisationWebsiteLinkRequest request) { try { _logger.LogInformation($"Amending the Organisation [{request.OrganisationId} with Website Link {request.WebsiteLink}]"); 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(UpdateEpaOrganisationWebsiteLinkRequest request, CancellationToken cancellationToken) { var organisation = await _mediator.Send(new GetAssessmentOrganisationRequest { OrganisationId = request.OrganisationId }); var updateEpaOrganisationRequest = Mapper.Map <UpdateEpaOrganisationRequest>(organisation); updateEpaOrganisationRequest.WebsiteLink = request.WebsiteLink; 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 = "Website address", ValueAdded = request.WebsiteLink, Editor = updatedBy?.DisplayName ?? "EFSA Staff" })); }
public async Task <IActionResult> ChangeWebsite(ChangeWebsiteViewModel 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.WebsiteLink, organisation.OrganisationData?.WebsiteLink)) { return(RedirectToAction(nameof(OrganisationDetails))); } // only check if an web site link has been entered - model has required validator var encodedWebsiteUrl = HttpUtility.UrlEncode(vm.WebsiteLink); _logger.LogInformation($"VALIDATEWEBSITELINK - OrganisationController.ChangeWebsite: {vm.WebsiteLink}, {encodedWebsiteUrl}"); if (await _validationApiClient.ValidateWebsiteLink(encodedWebsiteUrl) == false) { ModelState.AddModelError(nameof(ChangeWebsiteViewModel.WebsiteLink), "Enter a valid website address"); } } if (!ModelState.IsValid) { return(RedirectToAction(nameof(ChangeWebsite))); } vm = new ChangeWebsiteViewModel { WebsiteLink = vm.WebsiteLink }; return(View("ChangeWebsiteConfirm", vm)); } else if (vm.ActionChoice == "Confirm") { var userId = _contextAccessor.HttpContext.User.FindFirst("UserId").Value; var request = new UpdateEpaOrganisationWebsiteLinkRequest { WebsiteLink = vm.WebsiteLink, OrganisationId = organisation.OrganisationId, UpdatedBy = Guid.Parse(userId) }; var notifiedContacts = await _organisationsApiClient.UpdateEpaOrganisationWebsiteLink(request); if (notifiedContacts == null) { throw new Exception("Unable to update the website address."); } vm = new ChangeWebsiteViewModel { WebsiteLink = vm.WebsiteLink, Contacts = notifiedContacts }; return(View("ChangeWebsiteUpdated", vm)); } } catch (Exception e) { _logger.LogError(e, "Failed to change website link"); ModelState.AddModelError(nameof(ChangeWebsiteViewModel.WebsiteLink), "Unable to update the website address at this time."); return(RedirectToAction(nameof(ChangeWebsite))); } return(RedirectToAction(nameof(OrganisationDetails))); }