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}"); } } } }