private void UpdateLanguages() { LanguageSelection.Items.Clear(); if (Directory.Exists(this.ADMXLocation.Text)) { foreach (String LanguageFolder in Directory.GetDirectories(this.ADMXLocation.Text, "*-*")) { ComboBoxItem cbi = new ComboBoxItem(); if (this.ADMXLocation.Text.EndsWith("\\")) { cbi.Content = LanguageFolder.Replace(this.ADMXLocation.Text, ""); } else { cbi.Content = LanguageFolder.Replace(this.ADMXLocation.Text + "\\", ""); } LanguageSelection.Items.Add(cbi); } } if (LanguageSelection.Items.Count > 0) { LanguageSelection.SelectedIndex = 0; } LanguageSelection.IsEnabled = LanguageSelection.Items.Count > 0; OKButton.IsEnabled = LanguageSelection.Items.Count > 0; }
public void CreateData() { if (string.IsNullOrEmpty(this.languageFolder)) { throw new InvalidOperationException("LanguageFolder must have a value in order to create the data."); } if (string.IsNullOrEmpty(this.areaJsonSuffix)) { throw new InvalidOperationException("areaJsonSuffix must have a value in order to create the data."); } if (this.Counter <= 0) { // Seeding with zero would fail after OnModelCreating throw new InvalidOperationException("Counter must be bigger than zero in order to create data."); } foreach (string nameDirectory in this.names) { foreach (string yearDirectory in this.directory.GetDirectories(nameDirectory)) { var name = nameDirectory.Replace(this.languageFolder, "").Replace(this.areaJsonSuffix, "").TrimStart('\\'); var years = yearDirectory.Replace(nameDirectory, "").TrimStart('\\'); var(start, end) = ParseYearsFromTheFolderName(years); var item = new LanguageFolder { YearDirectory = years, Files = this.directory .GetFiles(yearDirectory) .Select(fileName => CreateColumn(fileName, yearDirectory)) .ToDictionary(key => key.Name, value => value.Value), Language = new Language { Id = this.Counter++, Name = name, YearStart = start, YearEnd = end } }; if (!item.Files.ContainsKey("area")) { throw new InvalidOperationException($"The folder '{name}' does not have file 'area.json'."); } item.Language.Area = ((FeatureCollection)item.Files["area"]).ToGeometry(); item.Language.Features = item.Files.GetValueOrDefault <string>("features"); item.Language.AdditionalDetails = item.Files.GetValueOrDefault <string>("additionalDetails"); item.SetFilters("filters"); this.data.Add(item); } } }