internal HttpMultiThreadDownloader createMTDO(DownloadMessage MSG)
        {
            var finalFolder = Properties.Settings.Default.SaveFolder;
            var tempFolder  = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            tempFolder = Path.Combine(tempFolder, "AltoDownloadAccelerator");
            var dorg = new HttpMultiThreadDownloader(MSG.Url, finalFolder, "", tempFolder, Properties.Settings.Default.NofThread);

            dorg.Id = Guid.NewGuid().ToString("N");
            dorg.DownloadRequestMessage = MSG;
            return(dorg);
        }
 public DownloaderForm(HttpMultiThreadDownloader mtdo, bool directStart = true)
 {
     InitializeComponent();
     this.FormClosing += DownloaderForm_FormClosing;
     this.dorg         = mtdo;
     setDownloaderEvents();
     btnPauseResume.Click += btnPauseOrResume_Click;
     this.Load            += DownloaderControl_Load;
     this.directStart      = directStart;
     rootRangeDir          = mtdo.RangeDir;
     lblStatus.Text        = "Last Status: " + dorg.Status.ToString();
     txtUrl.Text           = mtdo.Url;
     this.Shown           += DownloaderForm_Shown;
 }
        void WriteItem(HttpMultiThreadDownloader mtdo)
        {
            if (mtdo == null || mtdo.Info == null)
            {
                return;
            }
            var fullList = listView1.Items.Cast <ListViewItem>();
            var itemlist = fullList.Where(x => x.Text == mtdo.Info.ServerFileName ||
                                          x.SubItems[7].Text == mtdo.Info.Url);
            var i = -1;

            if (listView1.SmallImageList == null)
            {
                listView1.SmallImageList = new ImageList();
            }
            var subitems = new string[]
            {
                mtdo.Info.ServerFileName,
                mtdo.ProgressString,
                mtdo.TotalBytesReceived.ToHumanReadableSize(),

                mtdo.Info.ContentSize > 0 ? mtdo.Info.ContentSize.ToHumanReadableSize() :
                mtdo.Status == HttpDownloaderStatus.Completed ?
                mtdo.TotalBytesReceived.ToHumanReadableSize() : "Unknown",

                mtdo.Status.ToString(),
                mtdo.Speed.ToHumanReadableSize() + "/s",
                mtdo.Info.ResumeCapability.ToString(),
                mtdo.Url
            };

            if (itemlist.Any())
            {
                var it = itemlist.First();
                i = it.Index;
                for (int j = 0; j < it.SubItems.Count; j++)
                {
                    var a = (System.Windows.Forms.ListViewItem.ListViewSubItem)it.SubItems[j];
                    a.Text = subitems[j];
                }
                listView1.SmallImageList.Images[i] = IconReader.GetFileIcon(mtdo.FilePath, IconReader.IconSize.Small, false).ToBitmap();
            }
            else
            {
                listView1.SmallImageList.Images.Add(IconReader.GetFileIcon(mtdo.FilePath, IconReader.IconSize.Small, false));

                var lvi = new ListViewItem(subitems, listView1.Items.Count);
                listView1.Items.Add(lvi);
            }
        }
        public void DownloadAgain()
        {
            var tempFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            tempFolder = Path.Combine(tempFolder, "AltoDownloadAccelerator");
            dorg       = new HttpMultiThreadDownloader(dorg.Url, dorg.SaveDir, "", tempFolder, Properties.Settings.Default.NofThread)
            {
                DownloadRequestMessage = dorg.DownloadRequestMessage,
                Id = dorg.Id
            };
            setDownloaderEvents();
            dorg.Start();
            this.Activate();
        }
 public DownloadCompletedForm(HttpMultiThreadDownloader downloader)
 {
     InitializeComponent();
     mtdo       = downloader;
     this.Load += DownloadCompletedForm_Load;
 }