예제 #1
0
        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);
            }
        }
예제 #2
0
        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());
        }