Пример #1
0
 private void ChangeCurrentNode(MegaListNode newCurrent)
 {
     if (newCurrent.Type == MegaNodeType.Folder || newCurrent.Type == MegaNodeType.RootFolder)
     {
         CurrentNode = newCurrent;
         OnPropertyChanged("FileNodesCount");
         OnPropertyChanged("FileNodesSize");
     }
 }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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");
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
                }
            }
        }