/// <summary> /// Creates <see cref="WebhookFeedEntry"/> from <see cref="webHookWorkItem"/>. If it already has <see cref="WebhookFeedEntry"/>, inreases AttemptCount. /// </summary> /// <param name="webHookWorkItem"></param> /// <param name="webHookSendResponse"></param> /// <returns></returns> protected virtual WebhookFeedEntry GetOrCreateFeedEntry(WebhookWorkItem webHookWorkItem, WebhookSendResponse webHookSendResponse) { var feedEntry = webHookWorkItem.FeedEntry; if (feedEntry == null) { feedEntry = WebHookFeedUtils.CreateErrorEntry(webHookWorkItem, webHookSendResponse); } else { feedEntry.AttemptCount++; } return(feedEntry); }
protected virtual async Task HandleSuccessAsync(WebhookWorkItem webHookWorkItem, WebhookSendResponse webHookSendResponse) { // Clear error records on this sending after success if (webHookWorkItem.FeedEntry?.RecordType == (int)WebhookFeedEntryType.Error && !webHookWorkItem.FeedEntry.IsTransient()) { await _webHookFeedService.DeleteByIdsAsync(new[] { webHookWorkItem.FeedEntry.Id }); } // Create new record (not using and updating existing one!) for proper logging, as all Success entries are accumulated in one record in our current logging policy. var feedEntry = WebHookFeedUtils.CreateSuccessEntry(webHookWorkItem, webHookSendResponse); await _logger.LogAsync(feedEntry); webHookWorkItem.FeedEntry = feedEntry; }