private void ChangeCurrentNode(MegaListNode newCurrent) { if (newCurrent.Type == MegaNodeType.Folder || newCurrent.Type == MegaNodeType.RootFolder) { CurrentNode = newCurrent; OnPropertyChanged("FileNodesCount"); OnPropertyChanged("FileNodesSize"); } }
private void DeleteNode(MegaListNode node) { var type = (node.Type == MegaNodeType.Folder ? "folder" : "file"); var text = String.Format("Are you sure to delete the {0} {1}?", type, node.Name); if (MessageBox.Show(text, "Deleting " + type, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { api.RemoveNode(node.Id, () => LoadNodes(), err => DefaultErrorHandler(err)); } }
private void AppendNode(MegaNode node) { var newNode = new MegaListNode(node) { Parent = _flatNodes[node.ParentId] }; _flatNodes.Add(node.Id, newNode); Invoke(() => _flatNodes[node.ParentId].Children.Add(newNode)); OnPropertyChanged("CurrentNode"); OnPropertyChanged("FileNodesCount"); OnPropertyChanged("FileNodesSize"); }
private void LoadNodes() { string previousCurrentNode = null; if (CurrentNode != null) { previousCurrentNode = CurrentNode.Id; } Status = ConnectivityStatus.RetrievingList; _flatNodes.Clear(); Invoke(() => Nodes.Clear()); api.GetNodes((list) => { Status = ConnectivityStatus.Online; Invoke(() => { foreach (var node in list) { var mlnNew = new MegaListNode(node); if (!_flatNodes.ContainsKey(node.Id)) { _flatNodes.Add(mlnNew.Id, mlnNew); } if (!string.IsNullOrEmpty(node.ParentId)) { if (!_flatNodes.ContainsKey(node.ParentId)) { var nodeParent = list.FirstOrDefault(mn => mn.Id == node.ParentId); _flatNodes.Add(nodeParent.Id, new MegaListNode(nodeParent)); } mlnNew.Parent = _flatNodes[node.ParentId]; _flatNodes[node.ParentId].Children.Add(mlnNew); } else { Nodes.Add(mlnNew); } } if (!string.IsNullOrEmpty(previousCurrentNode)) { CurrentNode = _flatNodes[previousCurrentNode]; } else { CurrentNode = Nodes.FirstOrDefault(mln => mln.Name == "Root"); } }); }, DefaultErrorHandler); }
private void DownloadNodes(MegaListNode megaListNode) { string destination; Status = ConnectivityStatus.Downloading; if (ShowPickFolder(out destination)) { if (megaListNode.Type == MegaNodeType.Folder) { foreach (var node in megaListNode.Children) { api.DownloadFile(node.BaseNode, Path.Combine(destination, node.Name), AddDownloadHandle, DefaultErrorHandler); } } else { api.DownloadFile(megaListNode.BaseNode, Path.Combine(destination, megaListNode.Name), AddDownloadHandle, DefaultErrorHandler); } } }