Example #1
0
        private async Task DragDropExplorerImpl(object obj)
        {
            var e = (DragEventArgs)obj;

            if (IsDragNetsphereZip(e))
            {
                await DragDropImpl(e);

                return;
            }

            var files = (string[])e.Data.GetData(DataFormats.FileDrop);

            files = files
                    .Where(file => Directory.Exists(file) || File.Exists(file))
                    .ToArray();

            try
            {
                var folder = CurrentFolder;
                await FileOperationView.Add(_window, _overlay, _filesystem, folder, files);

                UpdateListViewItems();
                RootFolderNode     = CreateFolderTree();
                SelectedFolderNode = RootFolderNode.TreeView.Nodes.Find(folder.FullName, true).FirstOrDefault() ?? RootFolderNode;
            }
            catch (Exception ex)
            {
                TaskDialog.Show(_window, $"Failed to add some files to {CurrentFolder.FullName}", ex);
            }
            _overlay.Hide();
        }
Example #2
0
        private async Task RemoveFolderImpl()
        {
            if (CurrentFolder == null)
            {
                return;
            }

            try
            {
                var result = await FileOperationView.Delete(_window, _overlay, _filesystem, CurrentFolder);

                if (!result)
                {
                    return;
                }
                var tv   = SelectedFolderNode.TreeView;
                var node = tv.Nodes.Find(CurrentFolder.FullName, true).FirstOrDefault();
                node?.Parent.Nodes.Remove(node);
            }
            catch (Exception ex)
            {
                TaskDialog.Show(_window, $"Failed to remove folder {CurrentFolder.FullName}", ex);
            }
            _overlay.Hide();
        }
Example #3
0
        private async Task ExtractFolderToImpl()
        {
            if (CurrentFolder == null)
            {
                return;
            }

            try
            {
                await FileOperationView.Extract(_window, _overlay, _filesystem, CurrentFolder);
            }
            catch (Exception ex)
            {
                TaskDialog.Show(_window, $"Failed to extract folder {CurrentFolder.FullName}", ex);
            }
            _overlay.Hide();
        }
Example #4
0
        private async Task ExtractItemsImpl()
        {
            var items = SelectedItems.Where(item => item.Tag != null).Select(item => item.Tag).ToArray();

            if (items.Length == 0)
            {
                return;
            }

            try
            {
                await FileOperationView.Extract(_window, _overlay, _filesystem, items);
            }
            catch (Exception ex)
            {
                TaskDialog.Show(_window, $"Failed to extract {items.Length} items", ex);
            }
            _overlay.Hide();
        }
Example #5
0
        private async Task AddFilesImpl()
        {
            if (CurrentFolder == null)
            {
                return;
            }

            try
            {
                var result = await FileOperationView.Add(_window, _overlay, _filesystem, CurrentFolder);

                if (!result)
                {
                    return;
                }
                UpdateListViewItems();
            }
            catch (Exception ex)
            {
                TaskDialog.Show(_window, $"Failed to add some files to {CurrentFolder.FullName}", ex);
            }
            _overlay.Hide();
        }
Example #6
0
        private async Task RemoveItemsImpl()
        {
            var items = SelectedItems.Where(item => item.Tag != null).Select(item => item.Tag).ToArray();

            if (items.Length == 0)
            {
                return;
            }

            try
            {
                var result = await FileOperationView.Delete(_window, _overlay, _filesystem, items);

                if (!result)
                {
                    return;
                }

                foreach (var folder in items.OfType <IFolder>())
                {
                    var node = SelectedFolderNode.Nodes
                               .Cast <TreeNode>()
                               .FirstOrDefault(x => x.Text.Equals(folder.Name, StringComparison.OrdinalIgnoreCase));
                    if (node != null)
                    {
                        SelectedFolderNode.Nodes.Remove(node);
                    }
                }
                UpdateListViewItems();
            }
            catch (Exception ex)
            {
                TaskDialog.Show(_window, "Failed to delete some items", ex);
            }
            _overlay.Hide();
        }