public virtual void SelectedSourceChanged(object sender, global::System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "SelectedSource") { _actualSource = _sources[_sourceSelector.SelectedSource]; } }
public virtual void OnLoaded(object sender, RoutedEventArgs e) { _notification = ControlsHelper.FindResource <NotificationViewModel>("Notification"); _sourceSelector = ControlsHelper.FindResource <HqSourceLibrarySelectorViewModel>("SourceSelector"); _detailsViewModel = ControlsHelper.FindResource <DetailsViewModel>("DetailsView"); _hqStatusView = ControlsHelper.FindResource <HqStatusViewModel>("HqStatus"); _hqStatusView.PropertyChanged += HqStatusChanged; _sources = _sourceManager.GetSources(); _actualSource = _sources[_sourceSelector.SelectedSource]; _sourceSelector.PropertyChanged += SelectedSourceChanged; }
private void SaveChapter(IHqSourceManager source, DownloadItem downloadItem, Chapter chapter, int chpaterIndex, int totalChapters, string directory) { lock (_lock5) { var startChapterDownload = DateTime.Now; var chapterDirectory = _directoryHelper.CreateHqDirectory(directory, chapter.Title); if (chapter.Pages == null || chapter.Pages.Count == 0) { var chapterInfo = new Chapter(); source.GetInfo(chapter.Link, out chapterInfo); chapter.Pages = chapterInfo.Pages; } DownloadEventHub.OnDownloadChapterStart(this, new ProgressEventArgs(DateTime.Now, downloadItem, chpaterIndex, totalChapters)); var pageAtual = 1; var totalPages = chapter.Pages.Count(); downloadItem.NumPages = totalPages; foreach (var page in chapter.Pages) { downloadItem.ActualPageIndex = pageAtual; if (_stop) { break; } if (_paused) { DownloadEventHub.OnDownloadPause(this, new ProgressEventArgs(DateTime.Now, downloadItem, pageAtual, totalPages)); while (_paused) { ; } DownloadEventHub.OnDownloadResume(this, new ProgressEventArgs(DateTime.Now, downloadItem, pageAtual, totalPages)); } DownloadEventHub.OnDownloadProgress(this, new ProgressEventArgs(DateTime.Now, downloadItem, pageAtual, totalPages)); try { var pageSource = $"{chapterDirectory}\\{page.Number.ToString().PadLeft(3, '0')}{FormatPage(page.Source)}"; if (!File.Exists(pageSource)) { ServicePointManager.DefaultConnectionLimit = 1000; using (var webClient = new HttpClient()) { //webClient.Proxy = null; //webClient.DownloadFile(page.Source, pageSource); using (var response = webClient.GetAsync(page.Source).Result) { var imageByte = response.Content.ReadAsByteArrayAsync().Result; using (var binaryWriter = new BinaryWriter(new FileStream(pageSource, FileMode.Append, FileAccess.Write))) { binaryWriter.Write(imageByte); } } } } page.Source = pageSource; } catch (Exception e) { DownloadEventHub.OnDownloadError(this, new DownloadErrorEventArgs(null, e, DateTime.Now)); } pageAtual++; } DownloadEventHub.OnDownloadChapterEnd(this, new DownloadEventArgs(downloadItem)); GC.Collect(); GC.WaitForPendingFinalizers(); } }