public FileEntryViewModel(IOpenFileController controller, DirectoryEntry dirEntry, FileEntry fileEntry)
        {
            _dirEntry   = dirEntry;
            _fileEntry  = fileEntry;
            _controller = controller;

            _path     = PathHelpers.CombinePaths(dirEntry.Name, fileEntry.Name);
            _filename = PathHelpers.GetFileName(_path);
        }
        static public IEnumerable <FileEntryViewModel> Create(IOpenFileController controller, FileSystemEntry systemEntry)
        {
            FileEntry fileEntry = systemEntry as FileEntry;

            if (fileEntry != null)
            {
                return(new[] { new FileEntryViewModel(controller, null, fileEntry) });
            }
            else
            {
                DirectoryEntry dirEntry = systemEntry as DirectoryEntry;
                if (dirEntry != null)
                {
                    return(dirEntry
                           .Entries
                           .Select(entry => new FileEntryViewModel(controller, dirEntry, (FileEntry)entry))
                           .ToList());
                }
            }

            return(new List <FileEntryViewModel>());
        }
        static public IEnumerable <FileEntryViewModel> CreateMock(IOpenFileController controller)
        {
            DirectoryEntry mockDirectory1 = new DirectoryEntry();

            mockDirectory1.Name = @"c:\mypath1\";
            DirectoryEntry mockDirectory2 = new DirectoryEntry();

            mockDirectory2.Name = @"c:\mypath2\";
            FileEntry mockFile1 = new FileEntry();

            mockFile1.Name = @"foo1.cpp";
            FileEntry mockFile2 = new FileEntry();

            mockFile2.Name = @"foo1.h";
            FileEntry mockFile3 = new FileEntry();

            mockFile3.Name = @"bar.cpp";

            mockDirectory1.Entries.Add(mockFile1);
            mockDirectory1.Entries.Add(mockFile2);
            mockDirectory2.Entries.Add(mockFile3);

            return(Create(controller, mockDirectory1).Concat(Create(controller, mockDirectory2)));
        }