示例#1
0
 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);
     });
 }
示例#2
0
        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;
            }
        }
示例#3
0
        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);
            });
        }
示例#4
0
        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);
            }
        }
示例#5
0
 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;
     });
 }
示例#6
0
 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;
         }
     });
 }
示例#7
0
        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);
            }
        }
示例#8
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);
        }