private void AddTransfer(string path) { if (path != null && Path.GetExtension(path) != ".torrent") { IOService.ShowErrorMessage("Not a valid torrent file", "Only files with a .torrent extension are recognized as valid."); return; } try { string filePath = path == null ? IOService.OpenFile("Torrent files|*.torrent") : path; string saveFolder = null; if(!string.IsNullOrEmpty(filePath)) saveFolder = IOService.OpenFolder(Path.GetFileName(path)); if (filePath != null && saveFolder != null) { var transfer = new Transfer(new TorrentTransfer(filePath, saveFolder)); if (!Transfers.Any(t => t.InfoHash == transfer.InfoHash)) Transfers.Add(transfer); else IOService.ShowErrorMessage("Torrent transfer already exists", string.Format("{0} is already added and can not be added again.", path)); } } catch (Exception e) { Trace.WriteLine("Exception when adding transfer " + e); IOService.ShowErrorMessage("Adding transfer failed", string.Format("Adding transfer failed due to: {0}", e.Message)); } }
private void RemoveTransfer(Transfer transfer) { Transfers.Remove(transfer); }