private void CheckInputDataTypeAndDefaultTemplateImageReferenceConsistent(Liquid.Converter.Models.DataType inputDataType, string templateCollectionReference)
        {
            var defaultTemplatesDataType = DefaultTemplateInfo.DefaultTemplateMap.GetValueOrDefault(templateCollectionReference).DataType;

            if (defaultTemplatesDataType != inputDataType)
            {
                _logger.LogInformation("The default template collection and input data type are inconsistent.");
                throw new RequestNotValidException(string.Format(Resources.InputDataTypeAndDefaultTemplateCollectionInconsistent, inputDataType.ToString(), templateCollectionReference));
            }
        }
        public async Task <IActionResult> ConvertData([FromBody] Parameters inputParams)
        {
            CheckIfConvertDataIsEnabled();

            ValidateParams(inputParams);

            string inputData = ReadStringParameter(inputParams, ConvertDataProperties.InputData);
            string templateCollectionReference = ReadStringParameter(inputParams, ConvertDataProperties.TemplateCollectionReference);
            string rootTemplate = ReadStringParameter(inputParams, ConvertDataProperties.RootTemplate);

            Liquid.Converter.Models.DataType inputDataType = ReadEnumParameter <Liquid.Converter.Models.DataType>(inputParams, ConvertDataProperties.InputDataType);

            // Validate template reference format.
            if (!ImageInfo.IsValidImageReference(templateCollectionReference))
            {
                _logger.LogInformation("Templates collection reference format is invalid.");
                throw new RequestNotValidException(string.Format(Resources.InvalidTemplateCollectionReference, templateCollectionReference));
            }

            // Validate if template has been configured.
            bool   isDefaultTemplateReference = ImageInfo.IsDefaultTemplateImageReference(templateCollectionReference);
            string registryServer             = ExtractRegistryServer(templateCollectionReference);

            if (isDefaultTemplateReference)
            {
                CheckInputDataTypeAndDefaultTemplateImageReferenceConsistent(inputDataType, templateCollectionReference);
            }
            else
            {
                CheckIfCustomTemplateIsConfigured(registryServer, templateCollectionReference);
            }

            var convertDataRequest       = new ConvertDataRequest(inputData, inputDataType, registryServer, isDefaultTemplateReference, templateCollectionReference, rootTemplate);
            ConvertDataResponse response = await _mediator.Send(convertDataRequest, cancellationToken : default);

            return(new ContentResult
            {
                Content = response.Resource,
                ContentType = "text/plain",
            });
        }