/// <inheritdoc /> public void Run(CancellationToken cancel) { //var wait = Task.Delay(10000, cancel); //wait.Wait(cancel); Task.Run(async() => { var dataDir = new DirectoryInfo(_settings.DataSrcDir); if (!dataDir.Exists) { throw new ApplicationException($"Data directory {_settings.DataSrcDir} does not exist"); } var loadedRaw = new List <ExtnBookData>(); foreach (var isbnDir in dataDir.EnumerateDirectories()) { _log.LogInformation("Directory found: {0}", isbnDir.Name); // check to see if book already exists var raw = await _repo.GetRawData(isbnDir.Name); if (raw != null) { continue; } _log.LogInformation("New book data, parsing and loading: {0}", isbnDir.Name); raw = await LoadBook(isbnDir); loadedRaw.Add(raw); } foreach (var rawBook in loadedRaw) { var chk = await _repo.GetOne(rawBook.Isbn, BookIsbn.GetMap()); if (chk != null) { continue; } _log.LogInformation("Parsing raw data to load book {0}", rawBook.Isbn); var bk = await DataScraperFactory.CreateBook(rawBook); var newId = await _repo.Insert(bk); _log.LogInformation("Book '{0}' loaded new id = {1}", rawBook.Isbn, newId); } }, cancel).Wait(cancel); _log.LogWarning("Task finished."); }
internal bool IsIsbnOf(string isbn) { return(BookIsbn.Equals(isbn)); }