private void generatePath(Models.SupportClasses.TreeNode currFolder, string path) { if (currFolder.getParent() != null) { pathBox.Text = currFolder.getCommonDescriptor().FileName + " > " + path; generatePath(currFolder.getParent(), currFolder.getCommonDescriptor().FileName + " > " + path); } else { pathBox.Text = currFolder.getCommonDescriptor().FileName + " > " + path; } }
private void deleteButton_Click(object sender, RoutedEventArgs e) { ICloudCalls cloudCaller = null; if (dF.Count > 0) { List <dispFolder> itemsToRemove = new List <dispFolder>(); foreach (dispFolder file in dF) { if (file.Checked) { itemsToRemove.Add(file); } } if (itemsToRemove.Count == 0) { //no elements selected return; } if (itemsToRemove.First().CD.AccountType == "Google Drive") { cloudCaller = new GoogleDriveCalls(); } else if (itemsToRemove.First().CD.AccountType == "One Drive") { cloudCaller = new OneDriveCalls(); } else { //failure return; } bool res; foreach (dispFolder file in itemsToRemove) { //add delete call to actual web service dF.Remove(file); res = cloudCaller.deleteFile(file.CD); //if these delete went through, remove the object from our file hierarchy if (res) { metaDataController.deleteCloudObjet(file.CD); } } } else { Console.WriteLine("nothing in list"); } CommonDescriptor cd; Models.SupportClasses.TreeNode originalrootNode = selectedHierarchyFolder; while (originalrootNode.getParent() != null) { originalrootNode = originalrootNode.getParent(); } cd = originalrootNode.getCommonDescriptor(); cloudCaller.fetchAllMetaData(metaDataController, cd.FileName); Models.SupportClasses.TreeNode remadeRootNode = metaDataController.getRoot(cd.FileName, cd.FileID, cd.AccountType); hierarchyDelete(originalrootNode); hierarchyAdd(remadeRootNode); }
private void uploadButton_Click(object sender, RoutedEventArgs e) { //get the destination location if (selectedHierarchyFolder == null) { //can't upload without selecting DialogResult res = System.Windows.Forms.MessageBox.Show("Please select a folder to upload to."); return; } CommonDescriptor destinationLocation = selectedHierarchyFolder.getCommonDescriptor(); //determine what controller to use (google vs one drive) Models.SupportClasses.TreeNode rootNode = selectedHierarchyFolder; while (rootNode.getParent() != null) { rootNode = rootNode.getParent(); } CommonDescriptor root = rootNode.getCommonDescriptor(); string acctType = root.AccountType; ICloudCalls cloudCaller = null; //should be done with a level of obfuscation if (acctType.Equals("Google Drive")) { cloudCaller = new GoogleDriveCalls(); } else if (acctType.Equals("One Drive")) { cloudCaller = new OneDriveCalls(); } else { DialogResult res = System.Windows.Forms.MessageBox.Show("Cannot upload to this account for some reason."); return; //somehow nothing was set for the root node, this should be impossible. } //get the elements the user wants to upload List <UploadInfo> filesToUpload = windowsUploadManager.getUploadFiles(); //make the calls to upload List <string> uploadedFileIDs; uploadedFileIDs = cloudCaller.uploadFiles(filesToUpload, destinationLocation); //now that files are uploaded //download the metaData from these files //really bad, should have a more precise solution cloudCaller.fetchAllMetaData(metaDataController, root.FileName); //update the view //again a dumb solution, should be more precise Models.SupportClasses.TreeNode remadeRootNode = metaDataController.getRoot(root.FileName, root.FileID, root.AccountType); //attempt to 'refresh' the fileHierarchy view MenuItem temp = new MenuItem() { Title = root.FileName, ID = root.FileID }; //label as the account name hierarchyDelete(rootNode); hierarchyAdd(remadeRootNode); }