public async Task <IActionResult> GetPossibleQuestionsAsync()
        {
            try
            {
                _logger.LogInformation("Trying to load possible questions.");

                var definitionTypesTask = _messageInterpreter.GetAllDefinitionTypeNamesAsync();
                var keywordsTask        = _messageInterpreter.GetAllKnownTermsAsync();

                await Task.WhenAll(definitionTypesTask, keywordsTask)
                .ConfigureAwait(false);

                var response = new PossibleQuestionsResponse
                {
                    DefinitionTypes = definitionTypesTask.Result,
                    Keywords        = keywordsTask.Result.Select(keyword => keyword.Keyword)
                };

                return(Ok(response));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Unexpected error occured while loading possible questions.");
                return(StatusCode(500));
            }
        }