Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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)
                }
            };
        }