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