Esempio n. 1
0
        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;
        }
Esempio n. 2
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);
                }
            }
        }