public async Task Run() { ExcelPackage.LicenseContext = LicenseContext.NonCommercial; var municipalities = GetMunicipalities().ToArray(); var populationFrames = GetPopulationProgress().ToArray(); var missingMunicipalities = populationFrames .Where(p => municipalities.All(m => m.MunicipalityId != p.MunicipalityId)) .GroupBy(p => p.MunicipalityId) .Select(p => $"{p.Key} year {p.Max(p => p.Year)}") .ToArray(); if (missingMunicipalities.Any()) { var message = "Any municipalities are missing " + String.Join(", ", missingMunicipalities); throw new Exception(message); } await _municipalityRepository.ReplaceAllAsync(municipalities); await _populationFrameRepository.ReplaceAllAsync(populationFrames); }