private void GenerateCodeFromTemplate <T>(string templatePath, ProjectItem projItem, string parameterName, IEnumerable <T> parameterCollection, string folderPath, ProjectItem folderItem, string suffix = null, bool ovewrite = true, string prefix = null) where T : IHasName { foreach (var parameter in parameterCollection) { var generatedFileName = GetGeneratedFileName(suffix, prefix, parameter); var result = t4Service.TransformText(templatePath, parameterName, parameter); var destinationFile = Path.Combine(folderPath, generatedFileName); if (ovewrite || !File.Exists(destinationFile)) { File.WriteAllText(destinationFile, result.Content); } // add file if it does not exist var fileItem = projItem.ProjectItems.Cast <ProjectItem>().FirstOrDefault(i => i.Name == generatedFileName); if (fileItem != null) { continue; } if (projItem.Name.EndsWith(".raml")) { var alreadyIncludedInProj = IsAlreadyIncludedInProject(folderPath, folderItem, generatedFileName, projItem); if (!alreadyIncludedInProj) { projItem.ProjectItems.AddFromFile(destinationFile); } } else { projItem.ProjectItems.AddFromFile(destinationFile); } } }
public void GenerateCodeFromTemplate <T>(TemplateParams <T> templateParams) where T : IHasName { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (!Directory.Exists(templateParams.TargetFolder)) { Directory.CreateDirectory(templateParams.TargetFolder); } foreach (var parameter in templateParams.ParameterCollection) { var generatedFileName = GetGeneratedFileName(templateParams.Suffix, templateParams.Prefix, parameter); var destinationFile = Path.Combine(templateParams.TargetFolder, generatedFileName); var result = t4Service.TransformText(templateParams.TemplatePath, templateParams.ParameterName, parameter, templateParams.BinPath, templateParams.ControllersNamespace, templateParams.ModelsNamespace, templateParams.UseAsyncMethods, templateParams.IncludeHasModels, templateParams.HasModels, templateParams.IncludeApiVersionInRoutePrefix, templateParams.ApiVersion, templateParams.TestsNamespace); var contents = templatesManager.AddServerMetadataHeader(result.Content, Path.GetFileNameWithoutExtension(templateParams.TemplatePath), templateParams.Title); if (templateParams.Ovewrite || !File.Exists(destinationFile)) { File.WriteAllText(destinationFile, contents); } if (templateParams.ParameterName == "controllerObject" || templateParams.TargetFolder == templateParams.FolderPath) { // add file if it does not exist var fileItem = templateParams.ProjItem.ProjectItems.Cast <ProjectItem>() .FirstOrDefault(i => i.Name == generatedFileName); if (fileItem != null) { continue; } // var alreadyIncludedInProj = IsAlreadyIncludedInProject(templateParams.FolderPath, templateParams.FolderItem, generatedFileName, templateParams.ProjItem); //if (!alreadyIncludedInProj) if (!VisualStudioAutomationHelper.IsJsonOrXProj(templateParams.FolderItem.ContainingProject)) { templateParams.ProjItem.ProjectItems.AddFromFile(destinationFile); } } else { var folder = templateParams.TargetFolder.TrimEnd(Path.DirectorySeparatorChar); var proj = templateParams.ProjItem.ContainingProject; AddItem(folder, proj, generatedFileName, destinationFile, templateParams.RelativeFolder); } } }
private void GenerateCodeFromTemplate <T>(TemplateParams <T> templateParams) where T : IHasName { foreach (var parameter in templateParams.ParameterCollection) { var generatedFileName = GetGeneratedFileName(templateParams.Suffix, templateParams.Prefix, parameter); var result = t4Service.TransformText(templateParams.TemplatePath, templateParams.ParameterName, parameter, templateParams.BinPath, templateParams.TargetNamespace, templateParams.UseAsyncMethods, templateParams.IncludeHasModels, templateParams.HasModels); var destinationFile = Path.Combine(templateParams.FolderPath, generatedFileName); var contents = templatesManager.AddServerMetadataHeader(result.Content, Path.GetFileNameWithoutExtension(templateParams.TemplatePath), templateParams.Title); if (templateParams.Ovewrite || !File.Exists(destinationFile)) { File.WriteAllText(destinationFile, contents); } // add file if it does not exist var fileItem = templateParams.ProjItem.ProjectItems.Cast <ProjectItem>().FirstOrDefault(i => i.Name == generatedFileName); if (fileItem != null) { continue; } if (templateParams.ProjItem.Name.EndsWith(".raml")) { var alreadyIncludedInProj = IsAlreadyIncludedInProject(templateParams.FolderPath, templateParams.FolderItem, generatedFileName, templateParams.ProjItem); if (!alreadyIncludedInProj) { templateParams.ProjItem.ProjectItems.AddFromFile(destinationFile); } } else { templateParams.ProjItem.ProjectItems.AddFromFile(destinationFile); } } }