public override void Download(String dirPath) { String downloadFolder = String.Format("{0}//{1}", dirPath, Name); if (!Directory.Exists(downloadFolder)) { Directory.CreateDirectory(downloadFolder); } IDictionary <String, String> elements = CloudWorker.GetChildElements(ID); foreach (KeyValuePair <String, String> keys in elements) { if (CloudWorker.IsFile(keys.Key)) { File file = new File() { ID = keys.Key, CloudWorker = CloudWorker, Name = keys.Value }; file.Download(downloadFolder); } //DownloadFile(keys.Key, downloadFolder); else { Folder folder = new Folder() { ID = keys.Key, CloudWorker = CloudWorker, Name = keys.Value }; folder.Download(downloadFolder); //DownloadFolder(keys.Key, downloadFolder, keys.Value); } } }
private Popup CreateRightClickPopup() { Popup popup = new Popup() { Margin = new Thickness(10, 0, 0, 13), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, Width = 150, Height = 150, IsOpen = false, Placement = PlacementMode.Center }; var point = Mouse.GetPosition(Application.Current.MainWindow); popup.HorizontalOffset = point.X; popup.VerticalOffset = point.Y; Grid grid = new Grid(); TextBox textBox = new TextBox(); Button download = new Button() { Content = "Download" }; //todo after actions update the grid download.Click += ((Object sender, RoutedEventArgs e) => { popup.IsOpen = false; Element element = null; Button actualButton = sender as Button; using (var dialog = new System.Windows.Forms.FolderBrowserDialog()) { System.Windows.Forms.DialogResult result = dialog.ShowDialog(); String id = CloudsWorker.GetId(lastRightClickedButton); element = !CloudWorker.IsFile(id) ? element = new Folder() { ID = id, CloudWorker = this.CloudWorker, Name = lastRightClickedButton.Content as String } : element = new File() { ID = id, CloudWorker = this.CloudWorker, Name = lastRightClickedButton.Content as String }; element.Download(dialog.SelectedPath); } }); Button moveToOtherCloud = new Button() { Content = "Move to another cloud" }; moveToOtherCloud.Click += ((Object sender, RoutedEventArgs e) => { popup.IsOpen = false; }); Button share = new Button() { Content = "Share" }; share.Click += ((Object sender, RoutedEventArgs e) => { popup.IsOpen = false; }); Button rename = new Button() { Content = "Rename" }; rename.Click += ((Object sender, RoutedEventArgs e) => { popup.IsOpen = false; }); Button delete = new Button() { Content = "Delete" }; delete.Click += ((Object sender, RoutedEventArgs e) => { popup.IsOpen = false; Element element = null; Button actualButton = sender as Button; String id = CloudsWorker.GetId(lastRightClickedButton); element = !CloudWorker.IsFile(id) ? element = new Folder() { ID = id, CloudWorker = this.CloudWorker, Name = lastRightClickedButton.Content as String } : element = new File() { ID = id, CloudWorker = this.CloudWorker, Name = lastRightClickedButton.Content as String }; element.Remove(); }); grid.RowDefinitions.Add(new RowDefinition()); grid.RowDefinitions.Add(new RowDefinition()); grid.RowDefinitions.Add(new RowDefinition()); grid.RowDefinitions.Add(new RowDefinition()); grid.Children.Add(textBox); grid.Children.Add(download); grid.Children.Add(moveToOtherCloud); grid.Children.Add(delete); Grid.SetRow(textBox, 0); Grid.SetRow(download, 1);//mainWindow.GRID_CLOUD_CONTENT.RowDefinitions.Count - 1 Grid.SetRow(moveToOtherCloud, 2); Grid.SetRow(delete, 3); Grid.SetColumn(textBox, 0); Grid.SetColumn(download, 0); Grid.SetColumn(moveToOtherCloud, 0); Grid.SetColumn(delete, 0); popup.Child = grid; return(popup); }