private static AlertSummary CreateAlertSummary(ElmahIoResponse elmahResponse, string policyName, string logId) { var alertSummary = new AlertSummary { TotalCount = elmahResponse.Total, PolicyName = policyName, LogId = logId, MostFrequent = elmahResponse.Messages.GroupBy(p => p.Type) .OrderByDescending(p => p.Count()).Take(5) .ToDictionary(p => p.Key, p => p.Count()), SeverityCount = elmahResponse.Messages.GroupBy(p => p.Severity) .OrderByDescending(p => p.Count()) .ToDictionary(p => p.Key, p => p.Count()) }; return(alertSummary); }
private static void SetTimeDiffString(ElmahIoResponse elmahResponse, AlertSummary alertSummary) { if (elmahResponse.Messages.Any()) { var timeDiff = (DateTime.UtcNow - elmahResponse.Messages.Min(p => p.DateTime)); if (timeDiff.TotalSeconds < 60) { alertSummary.FirstErrorTimeDiffString = (int)timeDiff.TotalSeconds + " seconds"; } else { alertSummary.FirstErrorTimeDiffString = (int)(DateTime.UtcNow - elmahResponse.Messages.Min(p => p.DateTime)).TotalMinutes + " minutes"; } } }