private void AddExistingDefinitionsAndSuggestions(List <WritingSystemTreeItem> items) { var x = new List <WritingSystemDefinition>(_setupModel.WritingSystemDefinitions); IEnumerable <IGrouping <string, WritingSystemDefinition> > systemsOfSameLanguage = x.GroupBy(def => def.Language.Name); foreach (IGrouping <string, WritingSystemDefinition> defsOfSameLanguage in systemsOfSameLanguage) { WritingSystemTreeItem parent; WritingSystemDefinition itemToUseForSuggestions; if (OneWritingSystemIsASuitableParent(defsOfSameLanguage)) { var primaryDefinition = ChooseMainDefinitionOfLanguage(defsOfSameLanguage); parent = MakeExistingDefinitionItem(primaryDefinition); parent.Children = new List <WritingSystemTreeItem>(from def in defsOfSameLanguage where def != primaryDefinition select MakeExistingDefinitionItem(def)); itemToUseForSuggestions = primaryDefinition; } else { parent = new GroupTreeItem(defsOfSameLanguage.First().Language.Name); parent.Children = new List <WritingSystemTreeItem>(from def in defsOfSameLanguage select MakeExistingDefinitionItem(def)); itemToUseForSuggestions = defsOfSameLanguage.First(); //unprincipled } if (Suggestor != null) { foreach ( IWritingSystemDefinitionSuggestion suggestion in Suggestor.GetSuggestions(itemToUseForSuggestions, defsOfSameLanguage)) { var treeItem = new WritingSystemCreationTreeItem(suggestion, OnClickAddCertainDefinition); parent.Children.Add(treeItem); } } if (itemToUseForSuggestions.Language == "qaa") { var treeItem = new WritingSystemRenameUnlistedLanguageTreeItem(item => _setupModel.RenameIsoCode(itemToUseForSuggestions)); parent.Children.Add(treeItem); } items.Add(parent); } }
private void AddExistingDefinitionsAndSuggestions(List<WritingSystemTreeItem> items) { var x = new List<WritingSystemDefinition>(_setupModel.WritingSystemDefinitions); IEnumerable<IGrouping<string, WritingSystemDefinition>> systemsOfSameLanguage = x.GroupBy(def=>def.Language.Name); foreach (IGrouping<string, WritingSystemDefinition> defsOfSameLanguage in systemsOfSameLanguage) { WritingSystemTreeItem parent; WritingSystemDefinition itemToUseForSuggestions; if (OneWritingSystemIsASuitableParent(defsOfSameLanguage)) { var primaryDefinition = ChooseMainDefinitionOfLanguage(defsOfSameLanguage); parent = MakeExistingDefinitionItem(primaryDefinition); parent.Children = new List<WritingSystemTreeItem>(from def in defsOfSameLanguage where def != primaryDefinition select MakeExistingDefinitionItem(def)); itemToUseForSuggestions = primaryDefinition; } else { parent = new GroupTreeItem(defsOfSameLanguage.First().Language.Name); parent.Children = new List<WritingSystemTreeItem>(from def in defsOfSameLanguage select MakeExistingDefinitionItem(def)); itemToUseForSuggestions = defsOfSameLanguage.First();//unprincipled } if (Suggestor != null) { foreach ( IWritingSystemDefinitionSuggestion suggestion in Suggestor.GetSuggestions(itemToUseForSuggestions, defsOfSameLanguage)) { var treeItem = new WritingSystemCreationTreeItem(suggestion, OnClickAddCertainDefinition); parent.Children.Add(treeItem); } } if (itemToUseForSuggestions.Language == "qaa") { var treeItem = new WritingSystemRenameUnlistedLanguageTreeItem(item => _setupModel.RenameIsoCode(itemToUseForSuggestions)); parent.Children.Add(treeItem); } items.Add(parent); } }