public async void Extract(object info) { DineSafeData dineSafeData = null; using (var cts = new CancellationTokenSource(_httpRequestTimeOut)) { if (await IsDineSafeOutdatedAsync(cts.Token)) { using (_logger.BeginScope($"DineSafe update found on {DateTime.Now}")) { dineSafeData = await DownloadDineSafeDataAsync(cts.Token); } } else { _logger.LogInformation($"No update at this time. {DateTime.Now}"); } } if (dineSafeData != null) { await PersistDineSafeDataAsync(dineSafeData); } else { _logger.LogInformation("No DineSafe Data to process"); } }
private async Task PersistDineSafeDataAsync(DineSafeData dineSafeData) { using var databaseCts = new CancellationTokenSource(_databaseOperationTimeOut); using (_logger.BeginScope("Begin DineSafe Data Collection")) { if (dineSafeData.Establishments != null) { foreach (var dineSafeEstablishment in dineSafeData.Establishments) { _logger.LogInformation($"Started processing establishment: {dineSafeEstablishment.Name} - {dineSafeEstablishment.Id}"); var establishment = CreateEstablishment(dineSafeEstablishment); var storedEstablishment = await _establishmentRepository.AddIfNotExistsAsync(establishment, databaseCts.Token); storedEstablishment.AddNewInspections(ExtractInspections(dineSafeEstablishment)); await _establishmentRepository.UnitOfWork.SaveEntitiesAsync(databaseCts.Token); _logger.LogInformation($"Finished processing establishment: {establishment.Name}"); } } } }
public Task <DineSafeData> GetEstablishmentsAsync(Uri resourceUri, CancellationToken cancellationToken) { var dineSafeData = new DineSafeData { Establishments = new[] { new DineSafeEstablishment { Name = "fakeName", Status = "Pass", Address = "Some Address", Id = 1, Type = "O+", Longitude = "0001", Latitude = "0001" } } }; return(Task.FromResult(dineSafeData)); }