private void GenerateHeader(ReportContext context, DateTime minDate, DateTime maxDate)
        {
            List <string> header = new List <string>();

            header.Add("Author");
            for (DateTime item = minDate; item <= maxDate; item = item.AddMonths(1))
            {
                header.Add(item.ToString("MMMM yyyy"));
            }
            TableWriter.WriteHeader(context, header.ToArray());
        }
        private void GenerateHeader(ReportContext context)
        {
            List <string> header = new List <string>();

            header.Add("Author");
            foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
            {
                header.Add(day.ToString());
            }
            TableWriter.WriteHeader(context, header.ToArray());
        }
Esempio n. 3
0
        private void GenerateHeader(ReportContext context, short min, short max)
        {
            List <string> header = new List <string>();

            header.Add("Author");
            for (short i = min; i <= max; i++)
            {
                header.Add(i.ToString());
            }
            TableWriter.WriteHeader(context, header.ToArray());
        }
Esempio n. 4
0
        public override void Generate(ReportContext context)
        {
            var groups =
                GetMessages().GroupBy(i => i.Author).Select(group => new Tuple <string, int>(group.Key, group.Count())).
                OrderByDescending(i => i.Item2);

            CommonWriter.WriteTitle(context, "Report by total message count");
            TableWriter.WriteHeader(context, "Author", "Message count");
            foreach (var item in groups)
            {
                var member = GetMember(item.Item1);
                if (member == null)
                {
                    continue;
                }
                TableWriter.WriteBody(context, member.DisplayName, item.Item2.ToString());
            }
            TableWriter.WriteFooter(context);
        }
Esempio n. 5
0
        public override void Generate(ReportContext context)
        {
            var result     = new Dictionary <string, int>(StringComparer.CurrentCultureIgnoreCase);
            var messages   = GetMessages();
            var smileRegex = new Regex("<[^>]*>", RegexOptions.Compiled | RegexOptions.CultureInvariant);

            foreach (var message in messages)
            {
                if (string.IsNullOrEmpty(message.Text))
                {
                    continue;
                }
                var text = message.Text;
                text = smileRegex.Replace(text, string.Empty);
                var words = text.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (var word in words)
                {
                    if (word.Length <= 1)
                    {
                        continue;
                    }
                    if (result.ContainsKey(word))
                    {
                        result[word]++;
                    }
                    else
                    {
                        result.Add(word, 1);
                    }
                }
            }
            CommonWriter.WriteTitle(context, "Report by top words");
            TableWriter.WriteHeader(context, "Word", "Count");
            foreach (var item in result.OrderByDescending(i => i.Value).Take(40))
            {
                TableWriter.WriteBody(context, item.Key, item.Value.ToString());
            }
            TableWriter.WriteFooter(context);
        }