コード例 #1
0
        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);
        }
コード例 #5
0
        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 }));
        }
コード例 #6
0
        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;
        }
コード例 #7
0
        public async Task <string> UpdateEpaContact(UpdateEpaOrganisationContactRequest request)
        {
            var result = await Put <UpdateEpaOrganisationContactRequest, EpaOrganisationContactResponse>("api/ao/assessment-organisations/contacts", request);

            return(result.Details);
        }