private void AddFilesToProject(string ramlSourceFile, Project proj, string targetNamespace, string ramlOriginalSource, string targetFileName, string clientRootClassName) { if (!File.Exists(ramlSourceFile)) { throw new FileNotFoundException("RAML file not found " + ramlSourceFile); } if (Path.GetInvalidFileNameChars().Any(targetFileName.Contains)) { throw new ArgumentException("Specified filename has invalid chars: " + targetFileName); } var destFolderName = Path.GetFileNameWithoutExtension(targetFileName); var apiRefsFolderPath = Path.GetDirectoryName(proj.FullName) + Path.DirectorySeparatorChar + ApiReferencesFolderName + Path.DirectorySeparatorChar; var destFolderPath = apiRefsFolderPath + destFolderName + Path.DirectorySeparatorChar; var apiRefsFolderItem = VisualStudioAutomationHelper.AddFolderIfNotExists(proj, ApiReferencesFolderName); var destFolderItem = VisualStudioAutomationHelper.AddFolderIfNotExists(apiRefsFolderItem, destFolderName, destFolderPath); var ramlProjItem = InstallerServices.AddOrUpdateRamlFile(ramlSourceFile, destFolderPath, destFolderItem, targetFileName); var refFilePath = InstallerServices.AddRefFile(ramlSourceFile, targetNamespace, ramlOriginalSource, destFolderPath, targetFileName, null, clientRootClassName); ramlProjItem.ProjectItems.AddFromFile(refFilePath); ramlProjItem.Properties.Item("CustomTool").Value = string.Empty; // to cause a refresh when file already exists ramlProjItem.Properties.Item("CustomTool").Value = "RamlClientTool"; }
private void AddFilesToProject(string ramlSourceFile, Project proj, string targetNamespace, string ramlOriginalSource, string targetFileName, string clientRootClassName) { if (!File.Exists(ramlSourceFile)) { throw new FileNotFoundException("RAML file not found " + ramlSourceFile); } if (Path.GetInvalidFileNameChars().Any(targetFileName.Contains)) { throw new ArgumentException("Specified filename has invalid chars: " + targetFileName); } var destFolderName = Path.GetFileNameWithoutExtension(targetFileName); var apiRefsFolderPath = Path.GetDirectoryName(proj.FullName) + Path.DirectorySeparatorChar + ApiReferencesFolderName + Path.DirectorySeparatorChar; var destFolderPath = apiRefsFolderPath + destFolderName + Path.DirectorySeparatorChar; var apiRefsFolderItem = VisualStudioAutomationHelper.AddFolderIfNotExists(proj, ApiReferencesFolderName); var destFolderItem = VisualStudioAutomationHelper.AddFolderIfNotExists(apiRefsFolderItem, destFolderName, destFolderPath); var includesManager = new RamlIncludesManager(); var result = includesManager.Manage(ramlOriginalSource, destFolderPath, ramlSourceFile); var ramlDestFile = Path.Combine(destFolderPath, targetFileName); if (File.Exists(ramlDestFile)) { new FileInfo(ramlDestFile).IsReadOnly = false; } File.WriteAllText(ramlDestFile, result.ModifiedContents); var ramlProjItem = InstallerServices.AddOrUpdateRamlFile(ramlDestFile, destFolderPath, destFolderItem, targetFileName); var props = new RamlProperties { ClientName = clientRootClassName, Source = ramlOriginalSource, Namespace = targetNamespace }; var refFilePath = InstallerServices.AddRefFile(ramlSourceFile, destFolderPath, targetFileName, props); ramlProjItem.ProjectItems.AddFromFile(refFilePath); ramlProjItem.Properties.Item("CustomTool").Value = string.Empty; // to cause a refresh when file already exists ramlProjItem.Properties.Item("CustomTool").Value = "RamlClientTool"; }