Exemplo n.º 1
0
        private void FeedEditionsCallBack(object state)
        {
            DownloadReporter.Reset();
            _downloadManagerEdition           = new DownloadManagerEdition(DownloadManager, DownloadReporter);
            _downloadManagerEdition.Finished += DownloadManagerEditionFinished;
            _downloadManagerEdition.Error    += DownloadManagerEditionError;

            foreach (EditionInfoViewModel editionInfoViewModel in Editions.Where(s => s.Active))
            {
                Interlocked.Increment(ref CountDown);
                string[] cardInfos = DownloadManager.GetCardUrls(editionInfoViewModel.Url);

                editionInfoViewModel.DownloadReporter.Total = cardInfos.Length;
                DownloadReporter.Total += cardInfos.Length;

                EditionInfoViewModel model = editionInfoViewModel;
                if (model.CardNumber.HasValue)
                {
                    if (cardInfos.Length != model.CardNumber.Value)
                    {
                        AppendMessage(string.Format("{0}: {1} urls while cardnumber is set to {2}", model.Name, cardInfos.Length, model.CardNumber.Value), false);
                    }
                }

                _downloadManagerEdition.AddRange(cardInfos.Select(s => WebAccess.ToAbsoluteUrl(model.Url, s)), model.EditionId, model.DownloadReporter);
            }

            _downloadManagerEdition.Start();
        }
Exemplo n.º 2
0
        private void DownloadManagerEditionFinished(object sender, EventArgs e)
        {
            _downloadManagerEdition.Finished -= DownloadManagerEditionFinished;
            _downloadManagerEdition.Error    -= DownloadManagerEditionError;
            _downloadManagerEdition           = null;
            //Keep previous error
            string msg = Message;

            Start(DispatcherInvoker);

            if (!string.IsNullOrWhiteSpace(msg))
            {
                AppendMessage(msg, true);
            }

            JobFinished();
        }