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);
        }
Exemple #3
0
        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);
                }
            });
        }
Exemple #4
0
        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);
                }
            });
        }
Exemple #5
0
        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;
            }
        }
Exemple #6
0
        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));
            }
        }
Exemple #7
0
 /// <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));