private void Download_Click(object sender, RoutedEventArgs e) { if (currentBtn == null) { return; } String dir = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "PacChat/Downloads"); Directory.CreateDirectory(dir); String savePath = System.IO.Path.Combine(dir, currentBtn.FileName); //if (!MainWindow.Instance.DownloadWindow.Visible) //{ // MainWindow.Instance.DownloadWindow.ShowPopUp(); //} var downloadWindow = DownloadWindow.Instance; if (downloadWindow.IsDownloading(currentBtn.FileID)) { return; } DownloadProgressNoti noti = new DownloadProgressNoti(); noti.FileLocation = FileAPI.RepairSavePath(savePath); noti.SetFileName(System.IO.Path.GetFileName(noti.FileLocation)); noti.FileID = currentBtn.FileID; downloadWindow.DownloadList.Children.Insert(0, noti); MainWindow.chatApplication.model.DownloadProgresses.Add(noti); FileAPI.DownloadMedia(currentBtn.StreamURL, savePath, noti.SetProgress, noti.FinalizeDownload, null); }
public bool IsDownloading(string fileID) { DownloadProgressNoti noti = DownloadList.Children.OfType <DownloadProgressNoti>() .Where(p => !p.IsCompleted && p.FileID.Equals(fileID, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); return(noti != null); }
private void AttachmentLink_Click(object sender, RoutedEventArgs e) { var app = MainWindow.chatApplication; SaveFileDialog dialog = new SaveFileDialog(); dialog.Title = "Select a place to download"; dialog.Filter = "All file types|*.*"; dialog.FileName = textBlock.Text; dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (dialog.ShowDialog() == true) { //if (!MainWindow.Instance.DownloadWindow.Visible) //{ // MainWindow.Instance.DownloadWindow.ShowPopUp(); //} String fileID = AttachmentLink.Tag as String; var downloadWindow = DownloadWindow.Instance; if (downloadWindow.IsDownloading(fileID)) { return; } DownloadProgressNoti noti = new DownloadProgressNoti(); noti.SetFileName(System.IO.Path.GetFileName(dialog.FileName)); noti.FileLocation = dialog.FileName; noti.FileID = fileID; downloadWindow.DownloadList.Children.Insert(0, noti); MainWindow.chatApplication.model.DownloadProgresses.Add(noti); FileAPI.DownloadAttachment(app.model.currentSelectedConversation, noti.FileID, dialog.FileName, noti.SetProgress, noti.FinalizeDownload, OnDownloadFileError); } }