public void WebhookMessageReceived(IWebhookMessage message) { var json = message.Json; var jsonObjectEvent = _jObjectWrapper.GetJobjectFromJson(json); var jsonEventChildren = jsonObjectEvent.Children().ToArray(); var keys = jsonEventChildren.Where(x => x.Path.EndsWith("event") || x.Path.EndsWith("events")); var key = keys.SingleOrDefault(); if (key == null) { return; } this.Raise(JsonObjectReceived, new JsonObjectEventArgs(json)); var eventName = key.Path; if (_events.ContainsKey(eventName)) { _events[eventName].Invoke(eventName, jsonObjectEvent); } else { this.Raise(UnmanagedEventReceived, new UnmanagedMessageReceivedEventArgs(json)); } }
public async Task <HttpStatusCode> Send(IWebhookMessage message) { var payloadJson = JsonConvert.SerializeObject(message, new JsonSerializerSettings { ContractResolver = _defaultContractResolver, Formatting = Formatting.Indented }); _httpClient.DefaultRequestHeaders.Add("contentType", message.MediaType); var response = await _httpClient.PostAsync("", new StringContent(payloadJson)); return(response.StatusCode); }
public void WebhookMessageReceived(IWebhookMessage message) { var jsonObjectEvent = _jObjectStaticWrapper.GetJobjectFromJson(message.Json); var userId = jsonObjectEvent["for_user_id"].ToString(); _accountActivityStream.ForEach(activityStream => { var isTargetingActivityStream = activityStream.AccountUserId.ToString() == userId; if (isTargetingActivityStream) { activityStream.WebhookMessageReceived(message); } }); }
public void WebhookMessageReceived(IWebhookMessage message) { var jsonObjectEvent = _jObjectStaticWrapper.GetJobjectFromJson(message.Json); var keys = jsonObjectEvent.Children().SingleOrDefault(x => x.Path == "for_user_id"); var userId = jsonObjectEvent["for_user_id"].ToString(); _userAccountActivityStream.ForEach(activityStream => { var isTargetingActivityStream = activityStream.UserId.ToString() == userId; if (isTargetingActivityStream) { activityStream.WebhookMessageReceived(message); } }); }
public async Task <IWebhookResult> SendMessageAsync(IWebhookMessage Message) { var httpMessageBody = JsonSerializer.Serialize(Message, jsonOptions); _logger.LogInformation($"SendMessageAsync httpMessageBody: {httpMessageBody}"); var httpMessage = new HttpRequestMessage() { RequestUri = _config.Value.WebhookUri, Content = new StringContent(httpMessageBody, Encoding.UTF8, MediaTypeNames.Application.Json), Method = HttpMethod.Post }; try { var httpResponse = await _httpClient.SendAsync(httpMessage, HttpCompletionOption.ResponseContentRead); if (!httpResponse.IsSuccessStatusCode) { _logger.LogError($"SendMessageAsync Request Failed"); } _logger.LogInformation($"SendMessageAsync Success: {httpResponse.IsSuccessStatusCode}"); _logger.LogInformation($"SendMessageAsync StatusCode: {httpResponse.StatusCode}"); _logger.LogInformation($"SendMessageAsync ReasonPhrase: {httpResponse.ReasonPhrase}"); var responseBody = await httpResponse.Content.ReadAsStringAsync(); _logger.LogInformation($"SendMessageAsync Response:"); _logger.LogInformation(responseBody); return(new WebhookResult { HttpResponseMessage = httpResponse, ResponseBody = responseBody, WebhookMessage = Message, WebhookOptions = _config.Value, IsSuccess = httpResponse.IsSuccessStatusCode }); } catch (System.Exception e) { _logger.LogError(e, "SendMessageAsync Request Failed with exception"); throw e; } }
public void WebhookMessageReceived(IWebhookMessage message) { if (message == null) { return; } try { var json = message.Json; var jsonObjectEvent = _jObjectWrapper.GetJobjectFromJson(json); var jsonEventChildren = jsonObjectEvent.Children().ToArray(); var keys = jsonEventChildren.Where(x => x.Path.EndsWith("event") || x.Path.EndsWith("events")); var key = keys.SingleOrDefault(); if (key == null) { return; } this.Raise(EventReceived, new AccountActivityEvent { Json = json, AccountUserId = AccountUserId }); var eventName = key.Path; if (_events.ContainsKey(eventName)) { _events[eventName].Invoke(eventName, jsonObjectEvent); } else { this.Raise(UnsupportedEventReceived, new UnsupportedMessageReceivedEvent(json)); } } catch (Exception e) { this.Raise(UnexpectedExceptionThrown, new UnexpectedExceptionThrownEvent(e)); } }
/// <inheritdoc/> public override void Send(IWebhookMessage message) => Send(new SeqEvent(message.Content, message.Level));
/// <inheritdoc/> public override void Send(IWebhookMessage message) => Send(new SlackMessage(JeebsConfig, message.Content, message.Level));