예제 #1
0
        public async Task <ValidationResponse> Handle(UpdateEpaOrganisationContactValidationRequest request, CancellationToken cancellationToken)
        {
            var result = _validator.ValidatorUpdateEpaOrganisationContactRequest(new UpdateEpaOrganisationContactRequest
            {
                ContactId   = request.ContactId,
                FirstName   = request.FirstName,
                LastName    = request.LastName,
                Email       = request.Email,
                PhoneNumber = request.PhoneNumber
            });

            return(await Task.FromResult(result));
        }
        public async Task <string> Handle(UpdateEpaOrganisationContactRequest request, CancellationToken cancellationToken)
        {
            ProcessRequestFieldsForSpecialCharacters(request);
            var validationResponse = _validator.ValidatorUpdateEpaOrganisationContactRequest(request);

            if (!validationResponse.IsValid)
            {
                var message = validationResponse.Errors.Aggregate(string.Empty, (current, error) => current + error.ErrorMessage + "; ");
                _logger.LogError(message);
                if (validationResponse.Errors.Any(x => x.StatusCode == ValidationStatusCode.BadRequest.ToString()))
                {
                    throw new BadRequestException(message);
                }
                if (validationResponse.Errors.Any(x => x.StatusCode == ValidationStatusCode.AlreadyExists.ToString()))
                {
                    throw new AlreadyExistsException(message);
                }
                throw new Exception(message);
            }
            var contact = MapOrganisationContactRequestToContact(request);

            return(await _registerRepository.UpdateEpaOrganisationContact(contact, request.ActionChoice));
        }