private void FindWebTempFiles(DirectoryInfo parentDir, List <WebTempFileDefinition> webTempFileDefinitionList, string siteDefinitionName, int pathIndex) { string webTempFileName = "webtemp" + siteDefinitionName + ".xml"; foreach (FileInfo file in parentDir.GetFiles()) { // parentDir.Name.Equals(siteDefinitionName, StringComparison.InvariantCultureIgnoreCase)) // Do the file match the SiteDefinition name and directory if (file.Name.Equals(webTempFileName, StringComparison.InvariantCultureIgnoreCase)) { // Create a new WebTempFileDefinition for the file WebTempFileDefinition webTempFileDefinition = new WebTempFileDefinition(); webTempFileDefinition.Location = file.FullName.Substring(pathIndex); // Add the file to the list of reserved files so it do not get included in the TemplateFiles section this.ReservedFiles.Add(file.FullName, file); // Add the file to list of cab files string filePath = file.FullName.Substring(pathIndex); //this.CabFiles.Add(new string[] { file.FullName, filePath }); this.AddToCab(file.FullName, filePath); webTempFileDefinitionList.Add(webTempFileDefinition); } } foreach (DirectoryInfo childDir in FileProvider.GetDirectories(parentDir)) { FindWebTempFiles(childDir, webTempFileDefinitionList, siteDefinitionName, pathIndex); } }
private WebTempFileDefinition[] BuildWebTempFileDefinition(DirectoryInfo templateDir, string siteDefinitionName, int pathIndex) { List <WebTempFileDefinition> webTempFileDefinitionList = new List <WebTempFileDefinition>(); foreach (KeyValuePair <string, XmlDocument> entry in GetAllWebTemplateDocuments(templateDir)) { XmlDocument webTempDoc = entry.Value; XmlNode templateNode = webTempDoc.SelectSingleNode("Templates/Template[@Name='" + siteDefinitionName + "']"); if (templateNode != null) { string fileFullName = entry.Key; string filePath = fileFullName.Substring(pathIndex); FileInfo file = new FileInfo(fileFullName); if (FileProvider.IncludeFile(file)) { WebTempFileDefinition webTempFileDefinition = new WebTempFileDefinition(); webTempFileDefinition.Location = filePath; webTempFileDefinitionList.Add(webTempFileDefinition); if (!ReservedFiles.ContainsKey(fileFullName)) { // Add the file to the list of reserved files so it do not get included in the TemplateFiles section this.ReservedFiles.Add(fileFullName, file); // Add the file to list of cab files //this.CabFiles.Add(new string[] { fileFullName, filePath }); this.AddToCab(fileFullName, filePath); } } } } if (webTempFileDefinitionList.Count == 0) { return(null); } return(webTempFileDefinitionList.ToArray()); }