| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Xml;
 
- namespace CyberX8_MainPages.Sequence
 
- {
 
-     public class RecipeSequenceTreeBuilder
 
-     {
 
-         public static List<FileNode> GetFiles(string prefixPath, List<string> filenames)
 
-         {
 
-             List<FileNode> folders = new List<FileNode>();
 
-             FileNode root = new FileNode() { Name = "Files", IsFile = false, FullPath = "", PrefixPath = prefixPath };
 
-             folders.Add(root);
 
-             foreach (string filename in filenames)
 
-             {
 
-                 string[] filesplits = filename.Split('\\');
 
-                 FileNode parent = root;
 
-                 if (filesplits.Length > 1)
 
-                 {
 
-                     for (var index = 0; index < filesplits.Length - 1; index++)
 
-                     {
 
-                         bool found = false;
 
-                         for (var j = 0; j < parent.Files.Count; j++)
 
-                         {
 
-                             if (parent.Files[j].Name == filesplits[index] && !parent.Files[j].IsFile)
 
-                             {
 
-                                 found = true;
 
-                                 parent = parent.Files[j];
 
-                                 break;
 
-                             }
 
-                         }
 
-                         if (!found)
 
-                         {
 
-                             FileNode folder = new FileNode() { Name = filesplits[index], IsFile = false, PrefixPath = prefixPath };
 
-                             folder.FullPath = (parent.FullPath == string.Empty ? filesplits[index] : parent.FullPath + "\\" + filesplits[index]);
 
-                             folder.Parent = parent;
 
-                             parent.Files.Add(folder);
 
-                             parent = folder;
 
-                         }
 
-                     }
 
-                 }
 
-                 FileNode file = new FileNode() { Name = filesplits[filesplits.Length - 1], IsFile = true, PrefixPath = prefixPath };
 
-                 file.FullPath = (parent.FullPath == string.Empty ? filesplits[filesplits.Length - 1] : parent.FullPath + "\\" + filesplits[filesplits.Length - 1]);
 
-                 file.Parent = parent;
 
-                 parent.Files.Add(file);
 
-             }
 
-             return folders;
 
-         }
 
-         public static void CreateTreeViewItems(XmlElement curElementNode, FileNode parent, string prefixPath, string selectionName, bool selectionIsFolder)
 
-         {
 
-             foreach (XmlElement ele in curElementNode.ChildNodes)
 
-             {
 
-                 if (ele.Name == "File")
 
-                 {
 
-                     string fileName = ele.Attributes["Name"].Value;
 
-                     fileName = fileName.Substring(fileName.LastIndexOf('\\') + 1);
 
-                     string fullPath = string.IsNullOrEmpty(parent.FullPath)
 
-                         ? fileName
 
-                         : parent.FullPath + "\\" + fileName;
 
-                     FileNode file = new FileNode()
 
-                     {
 
-                         Name = fileName,
 
-                         IsFile = true,
 
-                         PrefixPath = prefixPath,
 
-                         Parent = parent,
 
-                         FullPath = fullPath,
 
-                     };
 
-                     if (!selectionIsFolder && selectionName == file.FullPath)
 
-                     {
 
-                         file.IsSelected = true;
 
-                         FileNode node = file.Parent;
 
-                         while (node.FullPath.Contains("\\"))
 
-                         {
 
-                             node.IsExpanded = true;
 
-                             node = node.Parent;
 
-                         }
 
-                     }
 
-                     parent.Files.Add(file);
 
-                 }
 
-                 else if (ele.Name == "Folder")
 
-                 {
 
-                     string folderName = ele.Attributes["Name"].Value;
 
-                     folderName = folderName.Substring(folderName.LastIndexOf('\\') + 1);
 
-                     string fullPath = string.IsNullOrEmpty(parent.FullPath)
 
-                         ? folderName
 
-                         : parent.FullPath + "\\" + folderName;
 
-                     FileNode folder = new FileNode()
 
-                     {
 
-                         Name = folderName,
 
-                         IsFile = false,
 
-                         PrefixPath = prefixPath,
 
-                         Parent = parent,
 
-                         FullPath = fullPath,
 
-                         IsExpanded = !fullPath.Contains("\\"),
 
-                     };
 
-                     parent.Files.Add(folder);
 
-                     if (selectionIsFolder && selectionName == folder.FullPath)
 
-                     {
 
-                         folder.IsSelected = true;
 
-                         FileNode node = folder;
 
-                         while (node.FullPath.Contains("\\"))
 
-                         {
 
-                             node.IsExpanded = true;
 
-                             node = node.Parent;
 
-                         }
 
-                     }
 
-                     CreateTreeViewItems(ele, folder, prefixPath, selectionName, selectionIsFolder);
 
-                 }
 
-             }
 
-         }
 
-         public static List<FileNode> BuildFileNode(string prefixPath, string selectionName, bool selectionIsFolder, string fileListInXml)
 
-         {
 
-             List<FileNode> folders = new List<FileNode>();
 
-             FileNode root = new FileNode() { Name = "Files", IsFile = false, FullPath = "", PrefixPath = prefixPath };
 
-             folders.Add(root);
 
-             XmlDocument doc = new XmlDocument();
 
-             doc.LoadXml(fileListInXml);
 
-             CreateTreeViewItems(doc.DocumentElement, root, prefixPath, selectionName, selectionIsFolder);
 
-             return folders;
 
-         }
 
-     }
 
- }
 
 
  |