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