Example #1
0
        FileItemBase GetItem(EnvDTE.ProjectItem projectItem)
        {
            if (projectItem.FileCount < 1)
            {
                return(null);
            }
            string fileName = null;

            try {
                fileName = projectItem.FileNames[0];
            }
            catch {
                try {
                    fileName = projectItem.Name;
                }
                catch {
                }
            }
            if (fileName == null)
            {
                return(null);
            }
            FileItemBase item = null;

            if (File.Exists(fileName))
            {
                var fileInfo = new FileInfo(fileName);
                item = new FileItem(GetChildrenItems(projectItem).ToList())
                {
                    Name = fileInfo.Name, Path = fileName
                };
            }
            if (Directory.Exists(fileName))
            {
                var info = new DirectoryInfo(fileName);
                item = new FolderItem(GetChildrenItems(projectItem).ToList())
                {
                    Name = info.Name, Path = fileName
                };
            }
            if (item == null)
            {
                return(null);
            }
            item.ItemWrapper = new ProjectItemWrapper(projectItem);
            item.IsCheckOut  = dte.SourceControl.IsItemCheckedOut(fileName);
            item.IsNew       = !dte.SourceControl.IsItemUnderSCC(fileName);
            item.MergeState  = MergeState.None;
            return(item);
        }
Example #2
0
        IEnumerable <FileItemBase> GetFilesAndDirectories(Project project)
        {
            ProjectItems children = project.ProjectItems;

            if (children == null || children.Count == 0)
            {
                yield break;
            }
            foreach (EnvDTE.ProjectItem projectItem in children)
            {
                FileItemBase item = GetItem(projectItem);
                if (item != null)
                {
                    yield return(item);
                }
            }
        }