private async Task AddLogAsync(IWebHookWorkItem workItem, string error = null) { var log = new WebHookLog { Error = error, WebHookId = workItem.WebHook.Id, WebHookNotificationId = workItem.Id }; _context.Add(log); try { await _context.SaveChangesAsync(); if (!string.IsNullOrEmpty(error)) { Logger.LogInformation(error); } } catch (Exception e) { if (!string.IsNullOrEmpty(error)) { Logger.LogError(error); } Logger.LogError($"Log failed for WebHook {workItem.WebHook.Id}. [{workItem.WebHook.Callback}]: {e.Message}"); } }
public async Task SendAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken = default) { if (webHookWorkItem == null) { throw new ArgumentNullException(nameof(webHookWorkItem)); } await _webHooksQueue.QueueWebHookAsync(webHookWorkItem); }
public Task SendAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken = default) { if (webHookWorkItem == null) { throw new ArgumentNullException(nameof(webHookWorkItem)); } _webHooksQueue.QueueWebHook(webHookWorkItem); return(Task.CompletedTask); }
/// <inheritdoc /> protected override async Task OnNotFoundAsync(HttpResponseMessage response, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) { var dbWebHook = await _context.WebHooks.FirstOrDefaultAsync(w => w.Id == webHookWorkItem.WebHook.Id); if (dbWebHook != null) { dbWebHook.IsPaused = true; } await AddLogAsync(webHookWorkItem, $"WebHook {webHookWorkItem.WebHook.Id} was paused. [{webHookWorkItem.WebHook.Callback}]"); }
/// <inheritdoc /> protected override async Task OnNotFoundAsync(IWebHookWorkItem workItem, CancellationToken cancellationToken) { var dbWebHook = await _context.WebHooks.FirstOrDefaultAsync(w => w.Id == workItem.WebHook.Id, cancellationToken); if (dbWebHook == null) { return; } dbWebHook.IsPaused = true; await _context.SaveChangesAsync(cancellationToken); Logger.LogInformation($"WebHook {workItem.WebHook.Id} was paused."); }
protected override Task OnSuccessAsync(HttpResponseMessage response, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) { Successes += 1; return(Task.CompletedTask); }
protected override Task OnFailureAsync(HttpResponseMessage response, Exception exception, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) { Failures += 1; return(Task.CompletedTask); }
/// <inheritdoc /> protected override Task OnSuccessAsync(HttpResponseMessage response, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) => AddLogAsync(webHookWorkItem);
/// <inheritdoc /> protected override Task OnFailureAsync(HttpResponseMessage response, Exception exception, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) => AddLogAsync(webHookWorkItem, $"WebHook {webHookWorkItem.WebHook.Id} failed. [{webHookWorkItem.WebHook.Callback}]: {exception.Message}");
protected override Task OnSuccessAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) { Successes += 1; return(base.OnSuccessAsync(webHookWorkItem, cancellationToken)); }
protected override Task OnNotFoundAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) { NotFounds += 1; return(base.OnNotFoundAsync(webHookWorkItem, cancellationToken)); }
protected override Task OnFailureAsync(Exception exception, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) { Failures += 1; return(base.OnFailureAsync(exception, webHookWorkItem, cancellationToken)); }
/// <inheritdoc /> Task IWebHookSender.SendAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken) => PublishAsync(webHookWorkItem, cancellationToken);