void DownloadCenterForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (!trayIconExit)
            {
                e.Cancel = true;
                Hide();
                notifyIcon1.Visible = true;
                return;
            }

            if (MTDOList.Any(x => x.dorg.IsActive))
            {
                flagCloseAfterStop = true;
                e.Cancel           = true;
                foreach (var item in MTDOList)
                {
                    item.dorg.Stop();
                    item.dorg.Stopped += dorg_Stopped;
                }
            }
            else
            {
                saveDownloadList();
                notifyIcon1.Visible = false;
                notifyIcon1.Icon    = null;
                notifyIcon1.Dispose();
                notifyIcon1 = null;
            }
        }
        void saveDownloadList()
        {
            var list = MTDOList.Select(x => x.dorg);
            var json = JsonConvert.SerializeObject(list);

            Properties.Settings.Default.DownloadList = json;
            Properties.Settings.Default.Save();
        }
        void timer1_Tick(object sender, EventArgs e)
        {
            foreach (var item in MTDOList.Select(x => x.dorg))
            {
                WriteItem(item);
            }

            disableButtonsIfActive();
        }
        internal DownloaderForm findDownloaderFromUrl(string url)
        {
            if (string.IsNullOrEmpty(url))
            {
                return(null);
            }
            var t = MTDOList.Where(x => x.dorg != null && x.dorg.Info != null &&
                                   x.dorg.Info.Url == url);

            return(t.FirstOrDefault());
        }
        void dorg_Stopped(object sender, EventArgs e)
        {
            if (flagCloseAfterStop && !MTDOList.Any(x => x.dorg.IsActive) && trayIconExit)
            {
                flagCloseAfterStop = false;
                saveDownloadList();
                notifyIcon1.Visible = false;
                notifyIcon1.Icon    = null;
                notifyIcon1.Dispose();

                this.Close();
            }
        }
        internal DownloaderForm findDownloaderFromFilename(string filename)
        {
            if (string.IsNullOrEmpty(filename))
            {
                return(null);
            }
            var t = MTDOList.Where(x => x.dorg != null && x.dorg.Info != null &&
                                   x.dorg.Info.ServerFileName == filename);

            if (!t.Any())
            {
                t = MTDOList.Where(x => x.dorg != null && x.dorg.DownloadRequestMessage != null &&
                                   x.dorg.DownloadRequestMessage.FileName == filename);
            }
            return(t.FirstOrDefault());
        }