コード例 #1
0
        /// <summary>
        /// Gets DMARC failures summarized by IpAddress
        /// </summary>
        /// <param name="aggregateReport"></param>
        /// <returns>IEnumerable of <see cref="SourceIpSummary"/></returns>
        public static IEnumerable <SourceIpSummary> SummarizeFailuresByIpAddress(this AggregateReport aggregateReport)
        {
            var failedRecords = aggregateReport.GetFailureRecords();

            return(failedRecords.GroupBy(r => r.Row.SourceIp, r => r.Row.Count,
                                         (s, c) => new SourceIpSummary {
                IpAddress = IPAddress.Parse(s), Count = c.Sum()
            }));
        }
コード例 #2
0
        /// <summary>
        /// Gets DMARC failures summarized by message From header.
        /// </summary>
        /// <param name="aggregateReport"></param>
        /// <returns>IEnumerable of <see cref="FromHeaderSummary"/></returns>
        public static IEnumerable <FromHeaderSummary> SummarizeFailuresByHeaderFrom(this AggregateReport aggregateReport)
        {
            var failedRecords = aggregateReport.GetFailureRecords();

            return(failedRecords.GroupBy(r => r.Identifiers.HeaderFrom, r => r.Row.Count,
                                         (h, c) => new FromHeaderSummary {
                HeaderFrom = h, Count = c.Sum()
            }));
        }
コード例 #3
0
 /// <summary>
 /// Gets the total number of failures in this report.
 /// </summary>
 /// <param name="aggregateReport"></param>
 /// <returns>Count of failures.</returns>
 public static int GetFailureCount(this AggregateReport aggregateReport)
 {
     return(aggregateReport.GetFailureRecords().Sum(r => r.Row.Count));
 }