public async Task <int> Execute(CodeGenerationContext codeGenerationContext, string codeGeneratorName)
        {
            if (codeGenerationContext == null)
            {
                throw new ArgumentNullException(nameof(codeGenerationContext));
            }

            var template     = _templateLocator.FindTemplate(codeGeneratorName) as TemplateBase;
            var dataProvider = _dataProviderLocator.FindDataProvider(template);
            var templateData = GetTemplateData(codeGenerationContext, template);

            var templateProcessingResult = await _templateProcessor.ProcessTemplateAsync(template, templateData);

            if (templateProcessingResult.IsSuccess)
            {
                // TODO: Handle generated content.
                var generatedContent = templateProcessingResult.GeneratedContent;
            }
            else
            {
                // TODO: Handle errors.
                var errors = templateProcessingResult.TemplateProcessingErrors;
            }


            return(0);
        }