예제 #1
0
        private static async Task <HttpResponseMessage> Send(
            HttpClient client,
            WebHookReporterOptions options,
            string payload,
            ILogger logger,
            CancellationToken cancellation)
        {
            var request = CreatePostMessage(new Uri(client.BaseAddress + options.Url), payload);

            if (options.Authorization != null)
            {
                request.Headers.Authorization = BuildAuthHeader(options.Authorization);
            }

            options.Headers.ToList().ForEach(header => request.Headers.Add(header.Name, header.Value));

            var response = await client.SendAsync(request, cancellation);

            logger.LogDebug(ReportSentToUrlLog, request.RequestUri.ToString(), response.StatusCode);

            if (!response.IsSuccessStatusCode)
            {
                ThrowHttpRequestException(response);
            }

            return(response);
        }
예제 #2
0
 public WebHookReporterOld(
     IOptionsMonitor <WebHookReporterOptions> options,
     HttpClient client,
     IRetryProvider retryProvider,
     ILogger <WebHookReporterOld> logger)
 {
     _options       = options.CurrentValue;
     _client        = client;
     _retryProvider = retryProvider;
     _logger        = logger;
 }
예제 #3
0
 public SlackHealthCheckCommand(
     IOptions <WebHookReporterOptions> options,
     IRetryProvider retryProvider,
     IHttpClientFactory client,
     ILogger <SlackHealthCheckCommand> logger)
 {
     _options       = options?.Value ?? throw new ArgumentNullException(nameof(options));
     _retryProvider = retryProvider ?? throw new ArgumentNullException(nameof(retryProvider));
     _client        = client.CreateClient();
     _logger        = logger ?? throw new ArgumentNullException(nameof(logger));
 }