예제 #1
0
 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;
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }