public async Task <List <ContactResponse> > UpdateEpaOrganisationAddress(UpdateEpaOrganisationAddressRequest updateEpaOrganisationAddressRequest) { using (var request = new HttpRequestMessage(HttpMethod.Put, $"api/ao/assessment-organisations/update-address")) { return(await PostPutRequestWithResponse <UpdateEpaOrganisationAddressRequest, List <ContactResponse> >(request, updateEpaOrganisationAddressRequest)); } }
public async Task <IActionResult> UpdateEpaOrganisationAddress([FromBody] UpdateEpaOrganisationAddressRequest request) { try { _logger.LogInformation($"Amending the Organisation [{request.OrganisationId} with Address {request.AddressLine1}, {request.AddressLine2}, {request.AddressLine3}, {request.AddressLine4}, {request.Postcode}]"); 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(UpdateEpaOrganisationAddressRequest request, CancellationToken cancellationToken) { var organisation = await _mediator.Send(new GetAssessmentOrganisationRequest { OrganisationId = request.OrganisationId }); var updateEpaOrganisationRequest = Mapper.Map <UpdateEpaOrganisationRequest>(organisation); updateEpaOrganisationRequest.Address1 = request.AddressLine1; updateEpaOrganisationRequest.Address2 = request.AddressLine2; updateEpaOrganisationRequest.Address3 = request.AddressLine3; updateEpaOrganisationRequest.Address4 = request.AddressLine4; updateEpaOrganisationRequest.Postcode = request.Postcode; await _mediator.Send(updateEpaOrganisationRequest); var updatedBy = request.UpdatedBy.HasValue ? await _contactQueryRepository.GetContactById(request.UpdatedBy.Value) : null; string valueAdded = string.Join(", ", (new List <string> { request.AddressLine1, request.AddressLine2, request.AddressLine3, request.AddressLine4, request.Postcode }) .Where(p => !string.IsNullOrEmpty(p)) .ToArray()); return(await _mediator.Send(new SendOrganisationDetailsAmendedEmailRequest { OrganisationId = request.OrganisationId, PropertyChanged = "Contact address", ValueAdded = valueAdded, Editor = updatedBy?.DisplayName ?? "EFSA Staff" })); }
public async Task <IActionResult> ChangeAddress(ChangeAddressViewModel 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") { // regardless of whether the model is invalid, when the values have not been changed do not update if (string.Equals(vm.AddressLine1, organisation.OrganisationData?.Address1) && string.Equals(vm.AddressLine2, organisation.OrganisationData?.Address2) && string.Equals(vm.AddressLine3, organisation.OrganisationData?.Address3) && string.Equals(vm.AddressLine4, organisation.OrganisationData?.Address4) && string.Equals(vm.Postcode, organisation.OrganisationData?.Postcode)) { ModelState.Clear(); return(RedirectToAction(nameof(OrganisationDetails))); } if (!ModelState.IsValid) { return(RedirectToAction(nameof(ChangeAddress))); } vm = new ChangeAddressViewModel { AddressLine1 = vm.AddressLine1, AddressLine2 = vm.AddressLine2, AddressLine3 = vm.AddressLine3, AddressLine4 = vm.AddressLine4, Postcode = vm.Postcode }; return(View("ChangeAddressConfirm", vm)); } else if (vm.ActionChoice == "Confirm") { var userId = _contextAccessor.HttpContext.User.FindFirst("UserId").Value; var request = new UpdateEpaOrganisationAddressRequest { AddressLine1 = vm.AddressLine1, AddressLine2 = vm.AddressLine2, AddressLine3 = vm.AddressLine3, AddressLine4 = vm.AddressLine4, Postcode = vm.Postcode, OrganisationId = organisation.OrganisationId, UpdatedBy = Guid.Parse(userId) }; var notifiedContacts = await _organisationsApiClient.UpdateEpaOrganisationAddress(request); if (notifiedContacts == null) { throw new Exception("Unable to update the address"); } vm = new ChangeAddressViewModel { AddressLine1 = vm.AddressLine1, AddressLine2 = vm.AddressLine2, AddressLine3 = vm.AddressLine3, AddressLine4 = vm.AddressLine4, Postcode = vm.Postcode, Contacts = notifiedContacts }; return(View("ChangeAddressUpdated", vm)); } } catch (Exception e) { _logger.LogError(e, "Failed to change address"); ModelState.AddModelError(nameof(ChangeAddressViewModel.AddressLine1), "Unable to update the address at this time."); return(RedirectToAction(nameof(ChangeAddress))); } return(RedirectToAction(nameof(OrganisationDetails))); }