/// <summary> /// Moving folders and endpoints /// </summary> public void MoveDirectoriesAndEndpointsAction(MoveFoldersAndEndpointsInputArgs mags) { var moveNodeBackgroundWorker = new BackgroundWorker(); moveNodeBackgroundWorker.DoWork += MoveNodeBackgroundWorker_DoWork; moveNodeBackgroundWorker.RunWorkerCompleted += MoveNodeBackgroundWorker_RunWorkerCompleted; moveNodeBackgroundWorker.RunWorkerAsync(mags); }
private void OnMoveCommand(object args) { var data = new MoveFoldersAndEndpointsInputArgs(); data.TargerFolderId = ApplicationContext.NodeTargetId; var selectNode = FindChildSelectedNode(); var dnlist = new List <DirectoryNode>(); var allChildNodes = new List <DirectoryNode>(); foreach (var sn in ApplicationContext.NodesSelected) { if (sn.IsFolder) { var childNodes = new List <DirectoryNode>(); FindAllChild(childNodes, sn); allChildNodes.AddRange(childNodes); } dnlist.Add(sn); var node = selectNode.Find(e => e.NodeId == sn.NodeId); if (node != null) { dnlist.Remove(sn); } } if (allChildNodes.Select(e => e.NodeId).ToList().Contains(data.TargerFolderId)) { var messageDialog = PageNavigatorHelper._MainWindow.MessageDialogContentControl.Content as MessageDialog; messageDialog.ShowMessageDialog("Target folder is invalid", "Message"); return; } data.FolderIds = dnlist.Where(e => e.IsFolder).Select(e => e.NodeId).ToList(); data.EndpointIds = dnlist.Where(e => !e.IsFolder).Select(e => e.NodeId).ToList(); var mainViewModel = PageNavigatorHelper.GetMainModel(); if (mainViewModel != null) { mainViewModel.MoveDirectoriesAndEndpointsAction(data); } _view.HideWindow(); MakeTree(data.TargerFolderId); }
/// <summary> /// Move folders and enpoints into another folder /// </summary> /// <param name="margs">parameters that contain folderId list, endpoidId list and taget forderId</param> private void MoveDirectoriesAndEndpoints(MoveFoldersAndEndpointsInputArgs margs) { try { Logger.Info("Starting move directory and endpoint"); using (var sc = new POCServiceClient("NetTcpBinding_IPOCService")) { var data = JsonConvert.SerializeObject(margs); sc.MoveFoldersAndEndpoints(EncryptionHelper.EncryptString(data, KeyEncryption)); //refresh tree data _view.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => { PageNavigatorHelper.GetRightElementViewModel().SearchText = string.Empty; ApplicationContext.SearchText = string.Empty; PageNavigatorHelper._MainWindow.RightTreeElement.BackButton.Visibility = Visibility.Collapsed; ApplicationContext.DirSearched = false; var dn = new DirectoryNode { IsFolder = true, NodeId = margs.TargerFolderId }; MakeTreeNode(dn, false, true); })); } Logger.Info("Ended move directory and endpoint"); } catch (Exception ex) { //refresh tree data _view.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() => { MakeTreeNode(0); var messageDialog = _view.MessageDialogContentControl.Content as MessageDialog; messageDialog.ShowMessageDialog( "Cannot move this tree note due to exception occured, please see the log file under the Logs for more information", "Message"); })); Logger.Error(ex.StackTrace); } }
/// <summary> /// Event of dropping a note /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DataTree_OnNodeDragEnd(object sender, DragDropEventArgs e) { if (e.OperationType == OperationType.DropNotAllowed) { return; } var data = new MoveFoldersAndEndpointsInputArgs(); var dragNode = e.Data as XamDataTreeNode; var mainViewModel = PageNavigatorHelper.GetMainModel(); if (dragNode != null) { var dragData = dragNode.Data as DirectoryNode; if (dragData != null) { var dropTarget = e.DropTarget as XamDataTreeNodeControl; if (dropTarget != null) { var dropData = dropTarget.Node.Data as DirectoryNode; if (dropData != null) { if (DataTree.Equals(sender)) { ApplicationContext.NodeId = dragData.NodeId; if (!(dropData.NodeId == dragData.NodeId && dropData.IsFolder == dragData.IsFolder)) { data.TargerFolderId = dropData.NodeId; var lstfi = new List <int>(); var lstei = new List <int>(); if (dragData.IsFolder) { lstfi.Add(dragData.NodeId); } else { lstei.Add(dragData.NodeId); } data.FolderIds = lstfi; data.EndpointIds = lstei; if (mainViewModel != null) { mainViewModel.MoveDirectoriesAndEndpointsAction(data); } } } else if (SoftwareDataTree.Equals(sender)) { var updSource = ApplicationContext.UpdateSourceList.Find(r => r.Id == dragData.NodeId); if (updSource != null) { updSource.ParentId = dropData.NodeId; var editUpdSourceBg = new BackgroundWorkerHelper(); editUpdSourceBg.AddDoWork(SaveBackgroundWorker_DoWork).DoWork(updSource); } } } } } } }