public async Task PostAsync(SlackMessage message, SlackVacancyNotificationType emoji) { var emojiIconId = GetEmojiIconId(emoji); message.Text = $"{emojiIconId} {message.Text}"; var payload = SerializePayload(message); using (var response = await _httpClient.PostAsync(_webhookUrl, new StringContent(payload))) { var content = await response.Content.ReadAsStringAsync(); var success = content.Equals("ok", StringComparison.OrdinalIgnoreCase); if (!success) { _logger.LogWarning($"Failed to send notification to Slack with url: {_webhookUrl}"); } } }
private string GetEmojiIconId(SlackVacancyNotificationType emoji) { switch (emoji) { case SlackVacancyNotificationType.New: return(":sparkle:"); case SlackVacancyNotificationType.Approved: return(":heavy_check_mark:"); case SlackVacancyNotificationType.Referred: return(":x:"); case SlackVacancyNotificationType.ManuallyClosed: return(":negative_squared_cross_mark:"); case SlackVacancyNotificationType.Extended: return(":date:"); default: return(":question:"); } }