/// <summary> /// Creates the static files and writes them to the Workbench_FileGenerator component directory. /// </summary> /// <param name="folderName">The relative path of the folder this file will be placed in.</param> /// <param name="file"></param> /// <param name="parentNode"></param> /// <returns>The number of files created.</returns> private int CreateStaticFile(string folderName, IFile file, ProjectFileTreeNode parentNode) { int fileCount = 0; if (string.IsNullOrEmpty(file.IteratorName)) { fileCount++; string fileName = UpdateScriptName(null, file); string relativeFilePath = Path.Combine(folderName, fileName); string fullPath = Path.Combine(absoluteBasePath, relativeFilePath); if (GetSkipCurrentFile(file, Path.Combine(_Project.ProjectSettings.OutputPath, relativeFilePath))) { return(fileCount); } _FileController.WriteResourceToFile(_Loader.CurrentAssembly, file.StaticFileName, fullPath); _Project.AddGeneratedFile(new GeneratedFile(file.Name, fullPath, relativeFilePath, "", file.IteratorName)); if (addToProjectFileTree) { BinaryFile outFile = new BinaryFile(fullPath, false); BinaryFileInformation binFileInfo = new BinaryFileInformation(); binFileInfo.NewGenFile = outFile; binFileInfo.RelativeFilePath = relativeFilePath; parentNode.AddChildNode(binFileInfo, fileName); } AddFileCountToPreviousEventAndRefire(_ProgressHelper, 1); return(fileCount); } ProviderInfo provider; Type iteratorType = _Project.GetIteratorTypeFromProviders(file.IteratorName, out provider); IScriptBaseObject[] iteratorObjects = GetIteratorObjects(iteratorType, provider); if (iteratorObjects != null) { if (iteratorType.IsArray) { throw new NotImplementedException("Array iterator types not handled for static files yet. Please inform [email protected] about this error."); } foreach (IScriptBaseObject iteratorObject in iteratorObjects) { string fileName = UpdateScriptName(iteratorObject, file); string relativeFilePath = Path.Combine(folderName, fileName); string fullPath = Path.Combine(absoluteBasePath, relativeFilePath); if (GetSkipCurrentFile(file, Path.Combine(_Project.ProjectSettings.OutputPath, relativeFilePath))) { // Skip the file. continue; } _FileController.WriteResourceToFile(_Loader.CurrentAssembly, file.StaticFileName, fullPath); _Project.AddGeneratedFile(new GeneratedFile(file.Name, fullPath, relativeFilePath, "", file.IteratorName)); if (addToProjectFileTree) { BinaryFile outFile = new BinaryFile(fullPath, false); BinaryFileInformation binFileInfo = new BinaryFileInformation(); binFileInfo.RelativeFilePath = relativeFilePath; binFileInfo.NewGenFile = outFile; parentNode.AddChildNode(binFileInfo, fileName); } fileCount++; AddFileCountToPreviousEventAndRefire(_ProgressHelper, 1); } } return(fileCount); }