Ejemplo n.º 1
0
        public void WriteSourceItemXml(XmlWriter writer, SourceItemDefinition item, string xmlFilePath = "")
        {
            string name = item.IsFolder
                ? ((item is RootFolderDefinition) ? "RootFolder" : "Folder")
                : "Header";

            writer.WriteStartElement(name);
            if (item == RootFolder)
            {
                writer.WriteAttributeString("Name", PathUtility.MakeRelativePath(xmlFilePath, item.Name));
            }
            else
            {
                writer.WriteAttributeString("Name", item.Name);
            }

            if (item.IsExcluded)
            {
                writer.WriteAttributeString("IsExcluded", "true");
            }

            if (!item.HasDefaultIncludeFolders)
            {
                WriteIncludeFolders(writer, item);
            }

            foreach (var child in item.Children)
            {
                WriteSourceItemXml(writer, child);
            }

            writer.WriteEndElement();
        }
Ejemplo n.º 2
0
        static void OpenSourceItem(SourceItemDefinition item)
        {
            var proc = new Process();

            proc.StartInfo.FileName        = item.FullPath;
            proc.StartInfo.UseShellExecute = true;
            proc.Start();
        }
Ejemplo n.º 3
0
 private void WriteIncludeFolders(XmlWriter writer, SourceItemDefinition item)
 {
     foreach (string includeFolder in item.IncludeFolders)
     {
         writer.WriteStartElement("IncludeFolder");
         writer.WriteString(includeFolder);
         writer.WriteEndElement();
     }
 }
Ejemplo n.º 4
0
        private static TreeNode GetTreeNodeByTag(TreeNodeCollection nodes, SourceItemDefinition item)
        {
            foreach (TreeNode node in nodes)
            {
                if (ReferenceEquals(node.Tag, item))
                {
                    return(node);
                }
            }

            return(null);
        }
Ejemplo n.º 5
0
        private static void RenameHeaders(SourceItemDefinition item)
        {
            if (item.Name.StartsWith("bt"))
            {
                item.Name = item.Name.Substring(2);
            }

            foreach (var child in item.Children)
            {
                RenameHeaders(child);
            }
        }
Ejemplo n.º 6
0
 public static void RenameCodeFiles(SourceItemDefinition item)
 {
     if (item is HeaderDefinition header)
     {
         header.Name = Path.GetFileNameWithoutExtension(header.FullPath) + ".cs";
     }
     else
     {
         foreach (SourceItemDefinition child in item.Children)
         {
             RenameCodeFiles(child);
         }
     }
 }
Ejemplo n.º 7
0
 private void ParseSourceItem(SourceItemDefinition sourceItem)
 {
     if (!sourceItem.IsExcluded)
     {
         if (sourceItem.IsFolder)
         {
             ParseFolder(sourceItem as FolderDefinition);
         }
         else
         {
             ParseHeader(sourceItem as HeaderDefinition);
         }
     }
 }
        private void ReadSourceItems(XmlReader reader, SourceItemDefinition parent)
        {
            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                    case "Folder":
                    case "Header":
                    {
                        SourceItemDefinition item;
                        var name       = reader.GetAttribute("Name");
                        var isExcluded = "true".Equals(reader.GetAttribute("IsExcluded"));

                        if (reader.Name.Equals("Folder"))
                        {
                            item = new FolderDefinition(name);
                        }
                        else         // if (reader.Name.Equals("Header"))
                        {
                            item = new HeaderDefinition(name);
                        }

                        parent.AddChild(item);

                        item.IsExcluded = isExcluded;

                        if (item.IsFolder)
                        {
                            ReadSourceItems(reader, item);
                        }
                    }
                    break;

                    case "IncludeFolder":
                        ReadIncludeFolder(reader, parent);
                        break;

                    default:
                        throw new NotImplementedException();
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    return;
                }
            }
        }
Ejemplo n.º 9
0
        private IEnumerable <string> GetItemIncludeFolders(SourceItemDefinition item)
        {
            if (item == null)
            {
                return(new string[0]);
            }

            return(item.IncludeFolders.SelectMany(i =>
            {
                if (string.Equals(i, "$(Inherited)"))
                {
                    return GetItemIncludeFolders(item.Parent);
                }
                return new[] { Path.Combine(item.FullPath, i) };
            }));
        }
Ejemplo n.º 10
0
 private void SetNodeProperties(SourceItemDefinition item, TreeNode node)
 {
     if (item.IsExcluded)
     {
         node.ForeColor = Color.Gray;
     }
     if (item.IsFolder)
     {
         node.ImageKey         = "folder";
         node.SelectedImageKey = "folder";
     }
     else
     {
         node.ImageKey         = "header";
         node.SelectedImageKey = "header";
     }
 }
 public void ReadIncludeFolder(XmlReader reader, SourceItemDefinition item)
 {
     while (reader.Read())
     {
         if (reader.NodeType == XmlNodeType.Text)
         {
             if (item.HasDefaultIncludeFolders)
             {
                 item.IncludeFolders.Clear();
                 item.IncludeFolders.Add(reader.Value);
             }
         }
         else if (reader.NodeType == XmlNodeType.EndElement)
         {
             return;
         }
     }
 }
        private SourceItemDefinition CloneSourceItem(SourceItemDefinition item)
        {
            if (item == null)
            {
                return(null);
            }

            if (_oldToNewMapping.TryGetValue(item, out SourceItemDefinition clone))
            {
                return(clone);
            }

            if (item is HeaderDefinition)
            {
                clone = new HeaderDefinition(item.Name);
            }
            else if (item is FolderDefinition)
            {
                clone = new FolderDefinition(item.Name);
            }
            else if (item is RootFolderDefinition)
            {
                clone           = new RootFolderDefinition(item.Name);
                RootFolderClone = RootFolderClone ?? clone as RootFolderDefinition;
            }
            else
            {
                throw new NotSupportedException();
            }

            _oldToNewMapping[item] = clone;

            clone.Parent = CloneSourceItem(item.Parent);
            foreach (SourceItemDefinition child in item.Children.Where(c => !c.IsExcluded))
            {
                var childClone = CloneSourceItem(child);
                clone.Children.Add(childClone);
            }

            return(clone);
        }
        private void WriteItem(SourceItemDefinition item)
        {
            if (item is FolderDefinition folder)
            {
                Directory.CreateDirectory(folder.FullPath);
            }

            if (item is RootFolderDefinition rootFolder)
            {
                Directory.CreateDirectory(rootFolder.FullPath);
            }

            if (item is HeaderDefinition header)
            {
                WriteHeader(header);
            }

            foreach (SourceItemDefinition child in item.Children)
            {
                WriteItem(child);
            }
        }