Exemplo n.º 1
0
        // LoadFiles bekommt einen Ordner übergeben und lädt die
        // Dateien, die in dem Ordner liegen. Dann wird für jede Datei
        // in dem Ordner eine neue Instanz von der Klasse SharePointFile
        // erstellt und die Instanzvariabelen gesetzt.
        private void LoadFiles(Folder subFolder)
        {
            string subFolderName = subFolder.Name;

            this.clientContext.Load(subFolder.Files);
            this.clientContext.ExecuteQuery();

            foreach (File file in subFolder.Files)
            {
                // aspx Files sind SharePoint Konfigurationsdateien und für uns unwichtig
                if (file.Name.Contains(".aspx"))
                {
                    continue;
                }

                this.sharePointFile = new SharePointFile();
                this.sharePointFile.SetName(file.Name);
                this.sharePointFile.BuildLinkingUrl(this.baseUrl.Substring(0, this.baseUrl.Length - 1)); // Die BaseUrl hat am Ende ein '/', das zuviel wäre,
                this.sharePointFile.BuildLinkingUrl(file.ServerRelativeUrl);                             // denn ServerRelativeUrl beginnt mit einem '/'.

                foreach (SharePointFolder folder in this.sharePointFolderList)
                {
                    CheckForMatchingSubFolder(subFolderName, folder);
                }
            }
        }
        // Eventhandler für den Drop von Dateien in das WindowsForm bzw. den Treeview
        // hier wird der Dateipfad übergeben, über den wir an die Dateien kommen, die hochgeladen werden sollen.
        // Die Dateipfade werden in das Stringarray "files" gespeichert und in der foreach-Schleife durchlaufen.
        // Am Anfang der Funktion wird die Klasse SharePointFileUploader initialisiert, damit die Klasse die ganze
        // Funktion über ansprechbar ist.
        private void TWI_TreeView_DragDrop(object sender, DragEventArgs e)
        {
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);


            //SharePointFileUploader fileUploader = new SharePointFileUploader(this.baseUrl, this.subWebsite, this.user, this.password, this.subPage, this.listName, this.filter);

            foreach (string file in files)
            {
                SharePointFile newSPFile = new SharePointFile();

                string[] parts = file.Split('\\');          // Teilt die Dateipfade am Trennstrich '\' und speichert diese in das stringarray parts

                newSPFile.SetName(parts[parts.Length - 1]); // Das letzt Element des Arrays ist der Name der Datei.


                Point    targetPoint = TWI_TreeView.PointToClient(new Point(e.X, e.Y)); // Hier wird bestimmt wo die Dateien im Treeview gedroped wurden.
                TreeNode parentNode  = TWI_TreeView.GetNodeAt(targetPoint);

                if (parentNode != null)
                {
                    // Hier wird geprüft ob die gedropte Datei auf einem TreeNode gedropt wurde,
                    // der in der fileList drin ist. Wenn dem so ist wird der parentNode auf den Parent
                    // von sich selbst verwiesen, weil jede Datei in einem Ordner liegen muss.
                    foreach (TreeNode node in this.fileList)
                    {
                        if (node.Text == parentNode.Text)
                        {
                            parentNode = parentNode.Parent;
                        }
                    }
                }

                SharePointFolder parentFolder;

                try {
                    parentFolder = FindParentFolder(parentNode.Text);
                } catch (ArgumentException ex) {
                    MessageBox.Show(ex.Message);
                    logger.Error(ex.Message + "\n" + ex.StackTrace);
                    logger.Debug("ParentNodeText: " + parentNode.Text);
                    return;
                }
                Drag_Drop(this, new DragDropEventArgs(file, parentFolder.GetServerRelativeUrl()));

                /*fileUploader.SetUrl(parentFolder);
                 *
                 * // Hier wird die Datei über die Klasse SharePointFileUploader hochgeladen.
                 * try {
                 *  fileUploader.SetConnection();
                 *  fileUploader.UploadFile(file, parentFolder);
                 *
                 * } catch (Exception ex) {
                 *  MessageBox.Show(resourceManager.GetString("errorUploading") + newSPFile.GetName() + "\n" + resourceManager.GetString("filepath") + file + "\n\n" + ex.Message);
                 *  logger.Error(ex.Message + "\n" + ex.StackTrace);
                 *  logger.Debug(resourceManager.GetString("errorUploading") + newSPFile.GetName() + "\n" + resourceManager.GetString("filepath") + file + "\n\n" + ex.Message);
                 *  return;
                 *  }
                 * }
                 * // Am Ende wird die aktualisierte Liste neu geladen.
                 * this.AddSharePointData(fileUploader.UpdateSharePointDataList());
                 */
            }
        }
 public void AddFile(SharePointFile file)
 {
     this.files.Add(file);
 }