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", }); }