public async Task <IActionResult> UpdateOrganisationContact([FromBody] UpdateEpaOrganisationContactRequest request) { try { _logger.LogInformation("Updating Organisation Contact"); var result = await _mediator.Send(request); return(Ok(new EpaOrganisationContactResponse(result))); } catch (AlreadyExistsException ex) { _logger.LogError($@"Record already exists for using this email in another organisation [{request.Email}]"); return(Conflict(new EpaOrganisationContactResponse(ex.Message))); } catch (BadRequestException ex) { _logger.LogError(ex.Message); return(BadRequest(new EpaOrganisationContactResponse(ex.Message))); } catch (Exception ex) { _logger.LogError($@"Bad request, Message: [{ex.Message}]"); return(BadRequest()); } }
public void Setup() { _registerRepository = new Mock <IRegisterRepository>(); _cleanserService = new Mock <ISpecialCharacterCleanserService>(); _validator = new Mock <IEpaOrganisationValidator>(); _logger = new Mock <ILogger <UpdateEpaOrganisationContactHandler> >(); _contactId = Guid.NewGuid().ToString(); _email = "*****@*****.**"; _firstName = "Joe"; _lastName = "Cool"; _phoneNumber = "555 4444"; _requestNoIssues = BuildRequest(_contactId, _firstName, _lastName, _email, _phoneNumber); _expectedOrganisationContactNoIssues = BuildOrganisationStandard(_requestNoIssues); _registerRepository.Setup(r => r.UpdateEpaOrganisationContact(It.IsAny <EpaContact>(), It.IsAny <string>())) .Returns(Task.FromResult(_expectedOrganisationContactNoIssues.Id.ToString())); _cleanserService.Setup(c => c.CleanseStringForSpecialCharacters(It.IsAny <string>())) .Returns((string s) => s); _validator.Setup(v => v.ValidatorUpdateEpaOrganisationContactRequest(_requestNoIssues)) .Returns(new ValidationResponse()); _updateEpaOrganisationContactHandler = new UpdateEpaOrganisationContactHandler(_registerRepository.Object, _validator.Object, _cleanserService.Object, _logger.Object); }
private EpaContact BuildOrganisationStandard(UpdateEpaOrganisationContactRequest requestNoIssues) { return(new EpaContact { Id = Guid.Parse(requestNoIssues.ContactId), DisplayName = $"{requestNoIssues.FirstName} {requestNoIssues.LastName}", Email = requestNoIssues.Email, PhoneNumber = requestNoIssues.PhoneNumber }); }
public ValidationResponse ValidatorUpdateEpaOrganisationContactRequest(UpdateEpaOrganisationContactRequest request) { var validationResult = new ValidationResponse(); RunValidationCheckAndAppendAnyError("Email", CheckIfEmailIsPresentAndInSuitableFormat(request.Email), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("Email", CheckIfEmailAlreadyPresentInOrganisationNotAssociatedWithContact(request.Email, request.ContactId), validationResult, ValidationStatusCode.AlreadyExists); if (validationResult.IsValid) { RunValidationCheckAndAppendAnyError("ContactDetails", CheckIfContactDetailsAlreadyPresentInSystem(request.FirstName, request.LastName, request.Email, request.PhoneNumber, request.ContactId), validationResult, ValidationStatusCode.AlreadyExists); } RunValidationCheckAndAppendAnyError("ContactId", CheckContactIdExists(request.ContactId), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("FirstName", CheckFirstName(request.FirstName), validationResult, ValidationStatusCode.BadRequest); RunValidationCheckAndAppendAnyError("LastName", CheckLastName(request.LastName), validationResult, ValidationStatusCode.BadRequest); return(validationResult); }
public async Task <IActionResult> EditContact(RegisterViewAndEditContactViewModel viewAndEditModel) { if (!ModelState.IsValid) { return(View(viewAndEditModel)); } var request = new UpdateEpaOrganisationContactRequest { ContactId = viewAndEditModel.ContactId, FirstName = viewAndEditModel.FirstName, LastName = viewAndEditModel.LastName, Email = viewAndEditModel.Email, PhoneNumber = viewAndEditModel.PhoneNumber, ActionChoice = viewAndEditModel.ActionChoice }; await _apiClient.UpdateEpaContact(request); return(RedirectToAction("ViewContact", "register", new { contactId = viewAndEditModel.ContactId })); }
public void Arrange() { _mediator = new Mock <IMediator>(); _logger = new Mock <ILogger <RegisterController> >(); _contactId = Guid.NewGuid(); _request = new UpdateEpaOrganisationContactRequest { ContactId = _contactId.ToString(), FirstName = "name", LastName = "lastname", Email = "*****@*****.**", PhoneNumber = "12344" }; _mediator.Setup(m => m.Send(_request, new CancellationToken())).ReturnsAsync(_contactId.ToString()); _controller = new RegisterController(_mediator.Object, _logger.Object); _result = _controller.UpdateOrganisationContact(_request).Result; }
public async Task <string> UpdateEpaContact(UpdateEpaOrganisationContactRequest request) { var result = await Put <UpdateEpaOrganisationContactRequest, EpaOrganisationContactResponse>("api/ao/assessment-organisations/contacts", request); return(result.Details); }