Exemple #1
0
        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
                }
            });
        }