Ejemplo n.º 1
0
        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}");
            }
        }
Ejemplo n.º 2
0
        public async Task SendAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken = default)
        {
            if (webHookWorkItem == null)
            {
                throw new ArgumentNullException(nameof(webHookWorkItem));
            }

            await _webHooksQueue.QueueWebHookAsync(webHookWorkItem);
        }
Ejemplo n.º 3
0
        public Task SendAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken = default)
        {
            if (webHookWorkItem == null)
            {
                throw new ArgumentNullException(nameof(webHookWorkItem));
            }

            _webHooksQueue.QueueWebHook(webHookWorkItem);
            return(Task.CompletedTask);
        }
Ejemplo n.º 4
0
        /// <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}]");
        }
Ejemplo n.º 5
0
        /// <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.");
        }
Ejemplo n.º 6
0
 protected override Task OnSuccessAsync(HttpResponseMessage response, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken)
 {
     Successes += 1;
     return(Task.CompletedTask);
 }
Ejemplo n.º 7
0
 protected override Task OnFailureAsync(HttpResponseMessage response, Exception exception, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken)
 {
     Failures += 1;
     return(Task.CompletedTask);
 }
Ejemplo n.º 8
0
 /// <inheritdoc />
 protected override Task OnSuccessAsync(HttpResponseMessage response, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken)
 => AddLogAsync(webHookWorkItem);
Ejemplo n.º 9
0
 /// <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}");
Ejemplo n.º 10
0
 protected override Task OnSuccessAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken)
 {
     Successes += 1;
     return(base.OnSuccessAsync(webHookWorkItem, cancellationToken));
 }
Ejemplo n.º 11
0
 protected override Task OnNotFoundAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken)
 {
     NotFounds += 1;
     return(base.OnNotFoundAsync(webHookWorkItem, cancellationToken));
 }
Ejemplo n.º 12
0
 protected override Task OnFailureAsync(Exception exception, IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken)
 {
     Failures += 1;
     return(base.OnFailureAsync(exception, webHookWorkItem, cancellationToken));
 }
Ejemplo n.º 13
0
 /// <inheritdoc />
 Task IWebHookSender.SendAsync(IWebHookWorkItem webHookWorkItem, CancellationToken cancellationToken)
 => PublishAsync(webHookWorkItem, cancellationToken);