private void AddChildFolders(Folder parent, DirectoryInfo[] currentDirectories)
        {
            foreach (var dir in currentDirectories)
            {
                var folder = new Folder(dir.Name, dir.FullName);
                parent.SubFolders.Add(folder);

                AddChildFolders(folder, dir.GetDirectories());
            }
        }
        public Task<Folder> GetAllFolders()
        {
            return Task.Run<Folder>(() => {
                var directories = new DirectoryInfo(_rootPath);

                var result = new Folder("Root", _rootPath);

                AddChildFolders(result, directories.GetDirectories());

                return result;
            });
        }
 public RenameFolderActivity(Folder folder)
 {
     this._folder = folder;
 }
 public IEnumerable<FolderItem> GetContentOfFolder(Folder folder)
 {
     return Directory.GetFiles(folder.Name, "*", SearchOption.TopDirectoryOnly).Select(f => new FolderItem(null, f));
 }
 public MergeFolderActivity(Folder targetFolder, Folder sourceFolder)
 {
     Source = sourceFolder;
     Target = targetFolder;
 }
 public MoveFolderItemActivity(FolderItem source, Folder target)
 {
     SourceItem = source;
     Target = target;
 }