/// <summary> /// Preencho o repositório com as HQs novas /// </summary> public void Dump(IComicRepository comicRepository, IAuthorRepository authorRepository, IGenreRepository genreRepository, IPublisherRepository publisherRepository, ILogRepository logRepository) { //Se já processei nesse período, retorno DateTime lastSyncDate = logRepository.GetLastComicListUpdate(); if (lastSyncDate.AddHours(24) > DateTime.Now) return; //Espero terminar de processar while (_working) Thread.Sleep(10); //Busco todas as HQs do banco IList<Comic> repoList = comicRepository.Read(); //Comparo o que mudou foreach (ComicVisitor cacheComic in _cache) { if (repoList.Any(c => c.ComicName.ToUpper().Equals(cacheComic.ComicName.ToUpper()))) continue; //Se tem uma HQ nova, adiciono Comic dbComic = ComicVisitor.ToComic(cacheComic); comicRepository.Add(dbComic); cacheComic.ComicId = dbComic.ComicId; } comicRepository.Save(); logRepository.SetLastComicListUpdate(DateTime.Now); }