private void RemovedFromTsunamiCore(object sender, EventsArgs.OnTorrentRemovedEventArgs e) { System.Windows.Application.Current.Dispatcher.Invoke(() => { TorrentItem ob = _torrentList.FirstOrDefault(o => o.Hash == e.Hash); _torrentList.Remove(ob); }); }
private async void DeleteTorrent_Click(object sender, RoutedEventArgs e) { TorrentStatusViewModel res = (TorrentStatusViewModel)this.FindResource("TorrentStatusViewModel"); System.Windows.Controls.Button os = (System.Windows.Controls.Button)e.OriginalSource; TorrentItem ti = (TorrentItem)os.DataContext; var dialogSettings = new MetroDialogSettings { SuppressDefaultResources = true, AffirmativeButtonText = (string)FindResource("DelAffermativeButton"), NegativeButtonText = (string)FindResource("No"), FirstAuxiliaryButtonText = (string)FindResource("DelFirstAuxiliary"), }; switch (await this.ShowMessageAsync("", (string)FindResource("DelTorrentMessage") + " " + ti.Name + " " + "?", MessageDialogStyle.AffirmativeAndNegativeAndSingleAuxiliary, dialogSettings)) { case MessageDialogResult.Affirmative: SessionManager.Instance.deleteTorrent(ti.Hash, true); res.TorrentList.Remove(ti); torrentList.Items.Refresh(); break; case MessageDialogResult.Negative: break; case MessageDialogResult.FirstAuxiliary: SessionManager.Instance.deleteTorrent(ti.Hash, false); res.TorrentList.Remove(ti); torrentList.Items.Refresh(); break; default: break; } }
private void AddFromTsunamiCore(object sender, EventsArgs.OnTorrentAddedEventArgs e) { TorrentItem ob = new TorrentItem(e.QueuePosition, e.Name, e.Hash, 0, 0, e.Status, e.Progress, 0, 0, 0); System.Windows.Application.Current.Dispatcher.Invoke(() => { _torrentList.Add(ob); }); }
private void PauseTorrent_Click(object sender, RoutedEventArgs e) { System.Windows.Controls.Button os = (System.Windows.Controls.Button)e.OriginalSource; TorrentItem ti = (TorrentItem)os.DataContext; Models.TorrentStatus status = SessionManager.Instance.getTorrentStatus(ti.Hash); if (!status.Paused) { SessionManager.Instance.pauseTorrent(ti.Hash); } else { SessionManager.Instance.resumeTorrent(ti.Hash); } }
private void UpdateFromTsunamiCore(object sender, EventsArgs.OnTorrentUpdatedEventArgs e) { System.Windows.Application.Current.Dispatcher.Invoke(() => { TorrentItem ob = _torrentList.FirstOrDefault(o => o.Hash == e.InfoHash); ob.Name = e.Name; ob.QueuePosition = e.QueuePosition; ob.TotalDone = e.TotalDone; ob.TotalWanted = e.TotalWanted; ob.State = e.State; ob.Progress = e.Progress; ob.Priority = e.Priority; ob.DownloadRate = e.DownloadRate; ob.UploadRate = e.UploadRate; }); }
private void UpdateFromTsunamiCore(object sender, EventsArgs.OnTorrentUpdatedEventArgs e) { System.Windows.Application.Current.Dispatcher.Invoke(() => { TorrentItem ob = _torrentList.FirstOrDefault(o => o.Hash == e.InfoHash); // ISSUE: Se si fa delete di un file arrivano update su torrent non più presenti // capire perchè! nel frattempo evito l'exception if (ob != null) { ob.Name = e.Name; ob.QueuePosition = e.QueuePosition; ob.TotalDone = e.TotalDone; ob.TotalWanted = e.TotalWanted; ob.State = e.State; ob.Progress = e.Progress; ob.Priority = e.Priority; ob.DownloadRate = e.DownloadRate; ob.UploadRate = e.UploadRate; } }); }
private void StreamTorrent_Click(object sender, RoutedEventArgs e) { System.Windows.Controls.Button os = (System.Windows.Controls.Button)e.OriginalSource; TorrentItem ti = os.DataContext as TorrentItem; string path = SessionManager.Instance.GetFilePathFromHash(ti.Hash, 0); if (CheckVideoExts(Path.GetExtension(path)) == false) { this.ShowMessageAsync("Error", "Streaming not available!", MessageDialogStyle.Affirmative, null); return; } var status = SessionManager.Instance.getTorrentStatus(ti.Hash); if (!status.Paused && !status.IsSeeding) { SessionManager.Instance.BufferingCompleted = BufferingCompleted; SessionManager.Instance.StreamTorrent(ti.Hash, 0); } }
private async void torrentFile_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { System.Windows.Controls.TextBlock os = (System.Windows.Controls.TextBlock)e.OriginalSource; TorrentItem ti = (TorrentItem)os.DataContext; List <Models.FileEntry> feList = SessionManager.Instance.getTorrentFiles(ti.Hash); var dialogSettings = new MetroDialogSettings { SuppressDefaultResources = true, AffirmativeButtonText = "Close", }; string msg = ti.Name + " files:\n"; foreach (Models.FileEntry fe in feList) { msg += "\n" + fe.FileName; } MessageDialogResult x = await this.ShowMessageAsync("", msg, MessageDialogStyle.Affirmative, dialogSettings); }