public void GenerateCodeFromTemplate <T>(RamlScaffoldService.TemplateParams <T> templateParams) where T : IHasName { 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.TargetNamespace, templateParams.UseAsyncMethods, templateParams.IncludeHasModels, templateParams.HasModels, templateParams.IncludeApiVersionInRoutePrefix, templateParams.ApiVersion); 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.IsAVisualStudio2015Project(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); } } }