private void AddToQueue(object obj) { string url = ((SearchItem)obj).StoryUrl; Downloader dl = Downloader.Resolve(url); var story = dl.RequestInfo(url); string saveFolder = SettingForm.GetSetting().StogareFolder +"\\"+ story.Name.ConvertToValidFileName(); foreach (var chap in story.Chapters) { chap.FolderName = chap.Name.ConvertToValidFileName(); chap.Folder = Path.Combine(saveFolder, chap.FolderName); chap.PdfFileName = chap.FolderName + ".pdf"; chap.PdfPath = Path.Combine(saveFolder, "PDF\\" + chap.PdfFileName); chap.Status = DownloadStatus.Waiting; } QueueDownloadItem item = new QueueDownloadItem() { ProviderName = dl.Name, Downloader = dl.GetType().FullName, StoryUrl = url, StoryName = story.Name, SelectedChapters = story.Chapters, Status = DownloadStatus.Waiting, SaveFolder = SettingForm.GetSetting().StogareFolder, }; QueueDownloadForm.AddDownloadItem(item); this.Invoke(new MethodInvoker(delegate() { lblStatus.Text = string.Format("Added {0}[{1} Chapters]", story.Name, story.Chapters.Count); })); }
internal static void AddDownloadItem(QueueDownloadItem item) { lock (locker) { if (DownloadItems == null) { DownloadItems = GetHistoryItems(); } item.Sequence = DownloadItems.Count + 1; item.Priority = 3; DownloadItems.Add(item); //doing merge here :) SaveHistoryItem(DownloadItems); } }