public async Task <NextPrimeNumberDto> Handle(GetNextIfNotPrimeOrCurrentQuery request, CancellationToken cancellationToken)
        {
            var isPrimeNumber = await _primeNumberChecker.CheckAsync(request.Number.Value);

            var nextPrimeNumber = request.Number.Value;

            if (!isPrimeNumber)
            {
                try
                {
                    nextPrimeNumber = await _primeNumberGenerator.GetNextPrimeNumberAsync(request.Number.Value);
                }
                catch (ArgumentOutOfRangeException)
                {
                    var validationFailure = new ValidationFailure(nameof(request.Number), "The number is too big and it's currently not supported.");
                    throw new ValidationException(new List <ValidationFailure>()
                    {
                        validationFailure
                    });
                }
            }

            var response = new NextPrimeNumberDto(nextPrimeNumber);

            return(response);
        }