Esempio n. 1
0
        private void FormOkButton_Click(object sender, EventArgs e)
        {
            if (FilePathTextBox.Text == null || string.IsNullOrWhiteSpace(FilePathTextBox.Text) || !File.Exists(FilePathTextBox.Text))
            {
                ShowNoOrInvalidFileDialog();
                DialogResult = DialogResult.None;
                return;
            }

            if (SelectedLanguages.Count <= 0)
            {
                ShowNoLanguagesSelectedDialog();
                DialogResult = DialogResult.None;
                return;
            }

            STBLXMLFile mergingFile = null;

            try {
                mergingFile = ImportExport.ImportFromPackageFile(FilePathTextBox.Text, SelectedLanguages);
            } catch (Exception readException) {
                ShowOpenFailureDialog(readException);
                DialogResult = DialogResult.None;
                return;
            }

            HashSet <uint> existingEntryKeys = new HashSet <uint>();

            if (CreateMissingEntriesCheckBox.Checked)
            {
                foreach (STBLXMLEntry existingEntry in Loading.Data.Entries)
                {
                    existingEntryKeys.Add(existingEntry.Key);
                }
            }

            Dictionary <uint, Dictionary <STBL.Languages, string> > mergingLanguagesKey = new Dictionary <uint, Dictionary <STBL.Languages, string> >();

            foreach (STBLXMLEntry mergingEntry in mergingFile.Entries)
            {
                string mergingEntryIdentifier = mergingEntry.Identifier;

                if (CreateMissingEntriesCheckBox.Checked)
                {
                    if (!existingEntryKeys.Contains(mergingEntry.Key))
                    {
                        Loading.AddNewEntry(key: mergingEntry.Key, identifier: mergingEntry.Identifier);
                        existingEntryKeys.Add(mergingEntry.Key);
                    }
                }

                if (!mergingLanguagesKey.ContainsKey(mergingEntry.Key))
                {
                    mergingLanguagesKey[mergingEntry.Key] = new Dictionary <STBL.Languages, string>();
                }

                foreach (STBL.Languages language in SelectedLanguages)
                {
                    string mergingEntryLanguageText = mergingEntry.GetText(language);

                    if (mergingEntryLanguageText == null)
                    {
                        continue;
                    }

                    mergingLanguagesKey[mergingEntry.Key][language] = mergingEntryLanguageText;
                }
            }

            List <uint> unmergedKeys = mergingLanguagesKey.Keys.ToList();

            foreach (STBLXMLEntry existingEntry in Loading.Data.Entries)
            {
                if (!mergingLanguagesKey.ContainsKey(existingEntry.Key))
                {
                    continue;
                }

                foreach (KeyValuePair <STBL.Languages, string> languageTextPair in mergingLanguagesKey[existingEntry.Key])
                {
                    if (TextPriorityExistingRadioButton.Checked)
                    {
                        if (existingEntry.HasText(languageTextPair.Key))
                        {
                            continue;
                        }

                        existingEntry.SetText(languageTextPair.Key, languageTextPair.Value);
                    }
                    else
                    {
                        existingEntry.SetText(languageTextPair.Key, languageTextPair.Value);
                    }
                }
            }
        }
Esempio n. 2
0
        private void FormOkButton_Click(object sender, EventArgs e)
        {
            uint entryKey = uint.Parse(KeyDecimalTextBox.Text);

            CreatedEntry = Loading.AddNewEntry(key: entryKey, identifier: IdentifierTextBox.Text);
        }