public async Task <IActionResult> GetDomains(DomainSearchRequest domainSearch)
        {
            ValidationResult validationResult = await _domainSearchValidator.ValidateAsync(domainSearch);

            if (!validationResult.IsValid)
            {
                _log.LogWarning($"Bad request: {validationResult.GetErrorString()}");
                return(BadRequest(new ErrorResponse(validationResult.GetErrorString())));
            }

            Claim roleClaim = User.FindFirst(_ => _.Type == ClaimTypes.Role);

            if (roleClaim.Value == RoleType.Unauthorised)
            {
                return(Forbid());
            }

            int             userId = GetUserId(User);
            MatchingDomains result = await _domainsDao.GetMatchingDomains(userId, domainSearch.SearchPattern);

            return(new ObjectResult(result));
        }
        public async Task Test(DomainSearchRequest domainSearchRequest, bool expectedToBeValid)
        {
            ValidationResult validationResult = await _domainSearchRequestValidator.ValidateAsync(domainSearchRequest);

            Assert.That(validationResult.IsValid, Is.EqualTo(expectedToBeValid));
        }