public List<string> DownloadJournals(JournalTocsFetchMode action = JournalTocsFetchMode.Update) { _logger.Info("Downloading journals..."); var result = new List<string>(); using (var webClient = _webClientFactory.Create()) { webClient.Encoding = _encoding; var fetch = true; do { _logger.Info($"\t...downloading batch #{_resumptionToken + 1}..."); var batch = webClient.DownloadString($"{_settings.RequestUrl}&action={action.ToString().ToLowerInvariant()}&resumptionToken={_resumptionToken}"); if (!batch.Contains(EndOfBatchesNotice) || !batch.Contains(Notice)) { result.Add(batch.Replace("&", "&")); _resumptionToken++; } else fetch = false; } while (fetch); _logger.Info("Finised downloading journals."); return result; } }
public List <string> DownloadJournals(JournalTocsFetchMode action = JournalTocsFetchMode.Update) { _logger.Info("Downloading journals..."); var result = new List <string>(); using (var webClient = _webClientFactory.Create()) { webClient.Encoding = _encoding; var fetch = true; do { _logger.Info($"\t...downloading batch #{_resumptionToken + 1}..."); var batch = webClient.DownloadString($"{_settings.AllJournalsRequestUrl}&action={action.ToString().ToLowerInvariant()}&resumptionToken={_resumptionToken}"); if (!batch.Contains(EndOfBatchesNotice) || !batch.Contains(Notice)) { result.Add(batch.Replace("&", "&")); _resumptionToken++; } else { fetch = false; } } while (fetch); _logger.Info("Finised downloading journals."); return(result); } }
public void DownloadJournals_uses_the_given_Action_to_fetch_journals(JournalTocsFetchMode action) { var sut = CreateClient(); _webClient.Setup(x => x.DownloadString(It.IsAny <string>())).Returns(GetJournalTocsNoMoreItemsNotice()); sut.DownloadJournals(action); _webClient.Verify(x => x.DownloadString($"{_settings.AllJournalsRequestUrl}&action={action.ToString().ToLowerInvariant()}&resumptionToken=0"), Times.Once); }
public void DownloadJournals_uses_the_given_Action_to_fetch_journals(JournalTocsFetchMode action) { var sut = CreateClient(); _webClient.Setup(x => x.DownloadString(It.IsAny<string>())).Returns(GetJournalTocsNoMoreItemsNotice()); sut.DownloadJournals(action); _webClient.Verify(x => x.DownloadString($"{_settings.RequestUrl}&action={action.ToString().ToLowerInvariant()}&resumptionToken=0"), Times.Once); }
IList <Journal> GetJournalsFromSource(JournalsImportSource importSource, JournalTocsFetchMode action = JournalTocsFetchMode.Update) { switch (importSource) { case JournalsImportSource.DOAJ: return(doajImport.GetJournals()); case JournalsImportSource.Ulrichs: return(ulrichsImport.GetJournals(UlrichsImport.UlrichsJournalType.All)); case JournalsImportSource.JournalTOCs: return(_journalsTocImport.DownloadJournals(action)); default: throw new ArgumentOutOfRangeException(nameof(importSource)); } }
public List <string> DownloadJournals(JournalTocsFetchMode action = JournalTocsFetchMode.Update) { return(new List <string>()); }
IList<Journal> GetJournalsFromSource(JournalsImportSource importSource, JournalTocsFetchMode action = JournalTocsFetchMode.Update) { switch (importSource) { case JournalsImportSource.DOAJ: return doajImport.GetJournals(); case JournalsImportSource.Ulrichs: return ulrichsImport.GetJournals(UlrichsImport.UlrichsJournalType.All); case JournalsImportSource.JournalTOCs: return _journalsTocImport.DownloadJournals(action); default: throw new ArgumentOutOfRangeException(nameof(importSource)); } }
IList<Journal> ParseJournals(JournalTocsFetchMode action = JournalTocsFetchMode.Update) { var xml = GetXml(action); var journalElements = new List<XElement>(); foreach (var doc in xml) journalElements.AddRange(XDocument.Parse(doc).Descendants("journals").Descendants("journal").ToList()); return journalElements.SelectMany(ParseJournal).Where(j => j.IsValid()).ToList(); }
IEnumerable<string> GetXml(JournalTocsFetchMode action = JournalTocsFetchMode.Update) { return _client.DownloadJournals(action); }
public IList<Journal> DownloadJournals(JournalTocsFetchMode action = JournalTocsFetchMode.Update) { return ExcludeBlockedIssns(ParseJournals(action)); }
IList <Journal> ParseJournals(JournalTocsFetchMode action = JournalTocsFetchMode.Update) { var xml = _client.DownloadJournals(action); return(_parser.Parse(xml)); }
public IList <Journal> DownloadJournals(JournalTocsFetchMode action = JournalTocsFetchMode.Update) { return(ExcludeBlockedIssns(ParseJournals(action))); }