RatioMaster_source.RM.getCurrentTorrent C# (CSharp) Method

getCurrentTorrent() private method

private getCurrentTorrent ( ) : RatioMaster_source.TorrentInfo
return RatioMaster_source.TorrentInfo
        private TorrentInfo getCurrentTorrent()
        {
            Uri trackerUri;
            TorrentInfo torrent = new TorrentInfo(0, 0);
            try
            {
                trackerUri = new Uri(trackerAddress.Text);
            }
            catch (Exception exception1)
            {
                AddLogLine(exception1.Message);
                return torrent;
            }

            torrent.tracker = trackerAddress.Text;
            torrent.trackerUri = trackerUri;
            torrent.hash = shaHash.Text;
            torrent.uploadRate = (Int64)(uploadRate.Text.ParseValidFloat(50) * 1024);

            // uploadRate.Text = (torrent.uploadRate / (float)1024).ToString();
            torrent.downloadRate = (Int64)(downloadRate.Text.ParseValidFloat(10) * 1024);

            // downloadRate.Text = (torrent.downloadRate / (float)1024).ToString();
            torrent.interval = interval.Text.ParseValidInt(torrent.interval);
            interval.Text = torrent.interval.ToString();
            double finishedPercent = fileSize.Text.ParseDouble(0);
            if (finishedPercent < 0 || finishedPercent > 100)
            {
                AddLogLine("Finished value is invalid: " + fileSize.Text + ", assuming 0 as default value");
                finishedPercent = 0;
            }

            if (finishedPercent >= 100)
            {
                seedMode = true;
                finishedPercent = 100;
            }

            fileSize.Text = finishedPercent.ToString();
            long size = (long)currentTorrentFile.totalLength;
            if (currentTorrentFile != null)
            {
                if (finishedPercent == 0)
                {
                    torrent.totalsize = (long)currentTorrentFile.totalLength;
                }
                else if (finishedPercent == 100)
                {
                    torrent.totalsize = 0;
                }
                else
                {
                    torrent.totalsize = (long)((currentTorrentFile.totalLength * (100 - finishedPercent)) / 100);
                }
            }
            else
            {
                torrent.totalsize = 0;
            }

            torrent.left = torrent.totalsize;
            torrent.filename = torrentFile.Text;

            // deploy custom values
            torrent.port = customPort.Text.GetValueDefault(torrent.port);
            customPort.Text = torrent.port;
            torrent.key = customKey.Text.GetValueDefault(currentClient.Key);
            torrent.numberOfPeers = customPeersNum.Text.GetValueDefault(torrent.numberOfPeers);
            currentClient.Key = customKey.Text.GetValueDefault(currentClient.Key);
            torrent.peerID = customPeerID.Text.GetValueDefault(currentClient.PeerID);
            currentClient.PeerID = customPeerID.Text.GetValueDefault(currentClient.PeerID);

            // Add log info
            AddLogLine("TORRENT INFO:");
            AddLogLine("Torrent name: " + currentTorrentFile.Name);
            AddLogLine("Tracker address: " + torrent.tracker);
            AddLogLine("Hash code: " + torrent.hash);
            AddLogLine("Upload rate: " + torrent.uploadRate / 1024);
            AddLogLine("Download rate: " + torrent.downloadRate / 1024);
            AddLogLine("Update interval: " + torrent.interval);
            AddLogLine("Size: " + size / 1024);
            AddLogLine("Left: " + torrent.totalsize / 1024);
            AddLogLine("Finished: " + finishedPercent);
            AddLogLine("Filename: " + torrent.filename);
            AddLogLine("Number of peers: " + torrent.numberOfPeers);
            AddLogLine("Port: " + torrent.port);
            AddLogLine("Key: " + torrent.key);
            AddLogLine("PeerID: " + torrent.peerID + "\n" + "\n");
            return torrent;
        }