public TorrentUpdater(string torrentLink, DayZInstaller installer, DayZUpdater updater)
        {
            this.installer = installer;
            this.updater   = updater;
            torrents       = new List <TorrentManager>();                                               // This is where we will store the torrentmanagers

            if (!Directory.Exists(torrentsPath))
            {
                Directory.CreateDirectory(torrentsPath);
            }
            else
            {
                Directory.Delete(torrentsPath, true); // Delete old torrents
                Directory.CreateDirectory(torrentsPath);
            }

            ExtendedWebClient wc = new ExtendedWebClient(new Uri(torrentLink));

            try
            {
                var torrentLinks = torrentLink.Split(';');
                int i            = 1;
                foreach (string torrent in torrentLinks)
                {
                    wc.DownloadFile(torrent, Path.Combine(torrentsPath, "DayZero-" + updater.LatestVersion + "-" + i + ".torrent"));
                    i++;
                }
            }
            catch (Exception)
            {
                updater.Status = "Could not download torrent.";
                CalculatedGameSettings.Current.Update();
                installer.Status    = "";
                installer.IsRunning = false;
                return;
            }

            // We need to cleanup correctly when the user closes the window by using ctrl-c
            // or an unhandled exception happens
            Console.CancelKeyPress += delegate { shutdown(); };
            AppDomain.CurrentDomain.ProcessExit        += delegate { shutdown(); };
            AppDomain.CurrentDomain.UnhandledException += delegate(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject); shutdown(); };
            Thread.GetDomain().UnhandledException      += delegate(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject); shutdown(); };
        }
        public TorrentUpdater(string torrentLink, DayZInstaller installer, DayZUpdater updater)
        {
            this.installer = installer;
            this.updater = updater;
            torrents = new List<TorrentManager>();							// This is where we will store the torrentmanagers

            if (!Directory.Exists(torrentsPath))
                Directory.CreateDirectory(torrentsPath);
            else
            {
                Directory.Delete(torrentsPath, true); // Delete old torrents
                Directory.CreateDirectory(torrentsPath);
            }

            ExtendedWebClient wc = new ExtendedWebClient(new Uri(torrentLink));
            try
            {
                var torrentLinks = torrentLink.Split(';');
                int i = 1;
                foreach (string torrent in torrentLinks)
                {
                    wc.DownloadFile(torrent, Path.Combine(torrentsPath, "DayZero-" + updater.LatestVersion + "-" + i + ".torrent"));
                    i++;
                }
            }
            catch (Exception)
            {
                updater.Status = "Could not download torrent.";
                CalculatedGameSettings.Current.Update();
                installer.Status = "";
                installer.IsRunning = false;
                return;
            }

            // We need to cleanup correctly when the user closes the window by using ctrl-c
            // or an unhandled exception happens
            Console.CancelKeyPress += delegate { shutdown(); };
            AppDomain.CurrentDomain.ProcessExit += delegate { shutdown(); };
            AppDomain.CurrentDomain.UnhandledException += delegate(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject); shutdown(); };
            Thread.GetDomain().UnhandledException += delegate(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject); shutdown(); };
        }
        public TorrentUpdater(string torrentLink)
        {
            torrents = new List <TorrentManager>();                                                      // This is where we will store the torrentmanagers
            // If the torrentsPath does not exist, we want to create it
            if (!Directory.Exists(torrentsPath))
            {
                Directory.CreateDirectory(torrentsPath);
            }
            else
            {
                Directory.Delete(torrentsPath, true); // Delete old torrents
                Directory.CreateDirectory(torrentsPath);
            }

            ExtendedWebClient wc = new ExtendedWebClient(new Uri(torrentLink));

            try
            {
                var torrentLinks = torrentLink.Split(';');
                int i            = 1;
                foreach (string torrent in torrentLinks)
                {
                    wc.DownloadFile(torrent, Path.Combine(torrentsPath, "DayZero-" + i + ".torrent"));
                    i++;
                }
            }
            catch (Exception)
            {
                return;
            }


            // We need to cleanup correctly when the user closes the window by using ctrl-c
            // or an unhandled exception happens
            Console.CancelKeyPress += delegate { shutdown(); };
            AppDomain.CurrentDomain.ProcessExit        += delegate { shutdown(); };
            AppDomain.CurrentDomain.UnhandledException += delegate(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject); shutdown(); };
            Thread.GetDomain().UnhandledException      += delegate(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject); shutdown(); };
        }
        public TorrentUpdater(string torrentLink)
        {
            torrents = new List<TorrentManager>();							// This is where we will store the torrentmanagers
            // If the torrentsPath does not exist, we want to create it
            if (!Directory.Exists(torrentsPath))
                Directory.CreateDirectory(torrentsPath);
            else
            {
                Directory.Delete(torrentsPath, true); // Delete old torrents
                Directory.CreateDirectory(torrentsPath);
            }

            ExtendedWebClient wc = new ExtendedWebClient(new Uri(torrentLink));
            try
            {
                var torrentLinks = torrentLink.Split(';');
                int i = 1;
                foreach (string torrent in torrentLinks)
                {
                    wc.DownloadFile(torrent, Path.Combine(torrentsPath, "DayZero-" + i + ".torrent"));
                    i++;
                }
            }
            catch (Exception)
            {
                return;
            }

            // We need to cleanup correctly when the user closes the window by using ctrl-c
            // or an unhandled exception happens
            Console.CancelKeyPress += delegate { shutdown(); };
            AppDomain.CurrentDomain.ProcessExit += delegate { shutdown(); };
            AppDomain.CurrentDomain.UnhandledException += delegate(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject); shutdown(); };
            Thread.GetDomain().UnhandledException += delegate(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(e.ExceptionObject); shutdown(); };
        }