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()); }
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()); }
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); }
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); }