internal void ReportFailure(string endpointUrl, MonitorFailure failure) { if (ShouldSendNotification(failure)) { EmailSender.SendAlert(endpointUrl, Settings, LastFailure, failure); LastNotificationSent = DateTime.Now; } LastFailure = failure; }
private bool ShouldSendNotification(MonitorFailure failure) => LastFailure != null && IsUnderFailureTolerance(failure) && NotificationIntervalHasElapsed();
private void ReportFailure(MonitorFailure failure) => Tracker.ReportFailure(Endpoint.Url, failure);
private bool IsUnderFailureTolerance(MonitorFailure failure) => failure.Occurrence - LastFailure.Occurrence < Tolerance;
internal static string FormatFailure(MonitorFailure failure, int num) => $"Issue {num + 1}: {failure}\n\nDetails:\n\n{failure.SPResult.GetDetails()}";