public async Task UpdateAsync(FileCrawler fileCrawler, DateTime date) { List <ParameterCombination> parameterCombinations = await ParameterCombinationRepository.GetListAsync(fileCrawler.Id, true); foreach (ParameterCombination parameterCombination in parameterCombinations) { List <FileCrawlerRecord> fileCrawlerRecordList = await FileCrawlerRecordRepository.GetListAsync(parameterCombination.Id, date); List <FileCrawlerRecord> list = CreateFileCrawlerRecordList(fileCrawler, date, parameterCombination); foreach (FileCrawlerRecord record in list) { FileCrawlerRecord fileCrawlerRecord = fileCrawlerRecordList.FirstOrDefault(x => x.SourceTime == record.SourceTime && x.TargetTime == record.TargetTime); if (fileCrawlerRecord == null) { fileCrawlerRecord = record; await FileCrawlerRecordRepository.InsertAsync(fileCrawlerRecord); } else { fileCrawlerRecord.Url = record.Url; fileCrawlerRecord.FileName = record.FileName; fileCrawlerRecord.Stamp = record.Stamp; await FileCrawlerRecordRepository.UpdateAsync(fileCrawlerRecord); } await EnqueueAsync(fileCrawlerRecord.Id, fileCrawlerRecord.SourceTime, fileCrawler.DelaySeconds); } } }
public async Task <List <FileCrawlerRecordDto> > GetListAsync(GetFileCrawlerRecordListDto input) { FileCrawler fileCrawler = await FileCrawlerRepository.FindAsync(x => x.Code == input.FileCrawlerCode); if (fileCrawler != null) { List <ParameterCombination> parameterCombinationList = await ParameterCombinationRepository.GetListAsync(fileCrawler.Id); ParameterCombination parameterCombination = parameterCombinationList.FirstOrDefault(x => Equal(x.Parameters, input.Parameters)); if (parameterCombination != null) { List <FileCrawlerRecord> list = await FileCrawlerRecordRepository.GetListAsync(parameterCombination.Id, input.Date); return(ObjectMapper.Map <List <FileCrawlerRecord>, List <FileCrawlerRecordDto> >(list)); } } return(new List <FileCrawlerRecordDto>()); }