public SlackNotifier( [NotNull] SlackNotifierSettings settings, [CanBeNull] IHealthCheckResultFormatter formatter = null) { Guard.AgainstNull(nameof(settings), settings); Guard.AgainstNullAndEmpty(nameof(settings.Url), settings.Url); _settings = settings; _formatter = formatter ?? new PlainTextFormatter(); }
public ConsoleNotifier( [NotNull] ConsoleNotifierSettings settings, [CanBeNull] IHealthCheckResultFormatter formatter = null, [CanBeNull] Action <string> writeLine = null) { Guard.AgainstNull(nameof(settings), settings); _settings = settings; _formatter = formatter ?? new JsonHealthCheckResultFormatter(); _writeLine = writeLine ?? Console.WriteLine; }
public LibLogNotifier( [NotNull] LibLogNotifierSettings settings, [CanBeNull] ILog logger = null, [CanBeNull] IHealthCheckResultFormatter formatter = null) { Guard.AgainstNull(nameof(settings), settings); _settings = settings; _logger = logger ?? LogProvider.GetCurrentClassLogger(); _formatter = formatter ?? new JsonHealthCheckResultFormatter(); }
public OpsGenieNotifier( [NotNull] OpsGenieNotifierSettings settings, [CanBeNull] IHealthCheckResultFormatter formatter) { Guard.AgainstNull(nameof(settings), settings); Guard.AgainstNullAndEmpty(nameof(settings.ApiKey), settings.ApiKey); Guard.AgainstNullAndEmpty(nameof(settings.HeartbeatName), settings.HeartbeatName); Guard.AgainstNullAndEmpty(nameof(settings.TeamName), settings.TeamName); _settings = settings; _formatter = formatter ?? new PlainTextFormatter(); }
public SlackMessage( [NotNull] HealthCheckResult result, [NotNull] IHealthCheckResultFormatter formatter) { // Because "text" will be shown (a) full-width and (b) full height without // a 'Show More...' link, we prefer that to use for the full description. // The "attachments" will then be a simpler things, drawing attention with // specific coloring and icons. Text = result.Reason + ":\n```" + formatter.Format(result) + "```"; SlackMessageAttachments = new[] { new SlackMessageAttachment { Text = CallToActionForLevel(result.Level), Color = GetHexForLevel(result.Level) } }; }