private void embedFolder(ITreeNavigator node, Set <SolutionItem> projects, ref int allFiles, ref int filesEmbedded)
 {
     node.MoveToFirstChild();
     do
     {
         if (node.DataItem is ProjectFolder)
         {
             embedFolder(node.Clone(), projects, ref allFiles, ref filesEmbedded);
             continue;
         }
         ProjectFile file = node.DataItem as ProjectFile;
         if (file == null)
         {
             continue;
         }
         allFiles++;
         const string EMBEDDED_RESOURCE = "EmbeddedResource";
         if (file.BuildAction != EMBEDDED_RESOURCE)
         {
             file.BuildAction = EMBEDDED_RESOURCE;
             filesEmbedded++;
             projects.Add(file.Project);
         }
     }while (node.MoveNext());
 }
        public static AssemblyLoader GetAssemblyLoader(ITreeNavigator navigator)
        {
            var nav = navigator.Clone();

            while (!(nav.DataItem is AssemblyLoader))
            {
                if (!nav.MoveToParent())
                {
                    return(null);
                }
            }

            return((AssemblyLoader)nav.DataItem);
        }
		private void GetFiles (ITreeNavigator nav, List<SystemFile> filesToAdd)
		{
			nav.MoveToFirstChild ();
			do {
				if (nav.HasChildren ()) {
					ProjectFolder pf = nav.DataItem as ProjectFolder;
					if (pf != null && (File.GetAttributes (pf.Path) & FileAttributes.Hidden) == 0) {
						ITreeNavigator newNav = nav.Clone ();
						GetFiles (newNav, filesToAdd);
					}
				} else if (nav.DataItem is SystemFile) {
					filesToAdd.Add ((SystemFile) nav.DataItem);
				}
			} while (nav.MoveNext ());
			nav.MoveToParent ();
		}
        public static ModuleDefinition GetModule(ITreeNavigator navigator)
        {
            var nav = navigator.Clone();

            while (!(nav.DataItem is ModuleDefinition) && !(nav.DataItem is Tuple <AssemblyDefinition, IProjectContent>))
            {
                if (!nav.MoveToParent())
                {
                    return(ModuleDefinition.CreateModule("empty", ModuleKind.Console));
                }
            }
            if (nav.DataItem is Tuple <AssemblyDefinition, IProjectContent> )
            {
                return(((Tuple <AssemblyDefinition, IProjectContent>)nav.DataItem).Item1.MainModule);
            }

            return((ModuleDefinition)nav.DataItem);
        }
        public static ModuleDefinition GetModule(ITreeNavigator navigator)
        {
            var nav = navigator.Clone();

            while (!(nav.DataItem is DomCecilCompilationUnit.Module) && !(nav.DataItem is DomCecilCompilationUnit))
            {
                if (!nav.MoveToParent())
                {
                    return(ModuleDefinition.CreateModule("", ModuleKind.Console));
                }
            }
            if (nav.DataItem is DomCecilCompilationUnit)
            {
                return(((DomCecilCompilationUnit)nav.DataItem).AssemblyDefinition.MainModule);
            }

            return(((DomCecilCompilationUnit.Module)nav.DataItem).ModuleDefinition);
        }
		public static ModuleDefinition GetModule (ITreeNavigator navigator)
		{
			var nav = navigator.Clone ();
			while (!(nav.DataItem is ModuleDefinition) && !(nav.DataItem is Tuple<AssemblyDefinition, IProjectContent>)) {
				if (!nav.MoveToParent ())
					return ModuleDefinition.CreateModule ("empty", ModuleKind.Console);
			}
			if (nav.DataItem is Tuple<AssemblyDefinition, IProjectContent>)
				return ((Tuple<AssemblyDefinition, IProjectContent>)nav.DataItem).Item1.MainModule;
				
			return (ModuleDefinition)nav.DataItem;
		}
 private void GetFiles(ITreeNavigator nav, List<SystemFile> filesToAdd)
 {
     nav.MoveToFirstChild ();
     do {
         if (nav.HasChildren ()) {
             ProjectFolder pf = nav.DataItem as ProjectFolder;
             if (pf != null && (File.GetAttributes (pf.Path) & FileAttributes.Hidden) == 0) {
                 ITreeNavigator newNav = nav.Clone ();
                 GetFiles (newNav, filesToAdd);
             }
         } else if (nav.DataItem is SystemFile) {
             filesToAdd.Add ((SystemFile) nav.DataItem);
         }
     } while (nav.MoveNext ());
     nav.MoveToParent ();
 }
		public static ModuleDefinition GetModule (ITreeNavigator navigator)
		{
			var nav = navigator.Clone ();
			while (!(nav.DataItem is DomCecilCompilationUnit.Module) && !(nav.DataItem is DomCecilCompilationUnit)) {
				if (!nav.MoveToParent ())
					return ModuleDefinition.CreateModule ("", ModuleKind.Console);
			}
			if (nav.DataItem is DomCecilCompilationUnit)
				return ((DomCecilCompilationUnit)nav.DataItem).AssemblyDefinition.MainModule;
				
			return ((DomCecilCompilationUnit.Module)nav.DataItem).ModuleDefinition;
		}