public static void WriteGroups( GroupDefinitionCollection groupDefinitions, Dictionary <int, ConsoleColors>?colors = null, Verbosity verbosity = Verbosity.Detailed) { if (!ShouldLog(verbosity)) { return; } if (groupDefinitions.Count == 1 && groupDefinitions[0].Number == 0) { return; } WriteLine(verbosity); WriteLine("Groups:", verbosity); int maxWidth = groupDefinitions.Max(f => f.Number).GetDigitCount(); foreach (GroupDefinition groupDefinition in groupDefinitions.OrderBy(f => f.Number)) { if (groupDefinition.Number == 0) { continue; } ConsoleColors groupColors = default; colors?.TryGetValue(groupDefinition.Number, out groupColors); Write(" ", verbosity); string indexText = groupDefinition.Number.ToString(); Write(' ', maxWidth - indexText.Length, verbosity); Write(indexText, groupColors, verbosity); if (indexText != groupDefinition.Name) { Write(" ", verbosity); Write(groupDefinition.Name, groupColors, verbosity); } WriteLine(verbosity); } }
List <GroupDefinitionSettings> GetGroupDefinitionSettings() { GroupDefinitionCollection GroupByResidence = new GroupDefinitionCollection(); GroupByResidence.Add(new TreeMapGroupDefinition() { GroupDataMember = "Residence" }); GroupDefinitionCollection GroupByAgeCategory = new GroupDefinitionCollection(); GroupByAgeCategory.Add(new TreeMapGroupDefinition() { GroupDataMember = "AgeCategory" }); GroupDefinitionCollection GroupByResidenceAndAgeCategory = new GroupDefinitionCollection(); GroupByResidenceAndAgeCategory.Add(new TreeMapGroupDefinition() { GroupDataMember = "Residence" }); GroupByResidenceAndAgeCategory.Add(new TreeMapGroupDefinition() { GroupDataMember = "AgeCategory" }); return(new List <GroupDefinitionSettings>() { new GroupDefinitionSettings() { CollectionGroupDefinitionName = "Without Groupping", ColorizeGroups = false, CollectionGroupDefinition = new GroupDefinitionCollection() }, new GroupDefinitionSettings() { CollectionGroupDefinitionName = "Group By Residence", ColorizeGroups = true, CollectionGroupDefinition = GroupByResidence }, new GroupDefinitionSettings() { CollectionGroupDefinitionName = "Group By Age Category", ColorizeGroups = true, CollectionGroupDefinition = GroupByAgeCategory }, new GroupDefinitionSettings() { CollectionGroupDefinitionName = "Group By Residence And Age Category", ColorizeGroups = true, CollectionGroupDefinition = GroupByResidenceAndAgeCategory } }); }