Beispiel #1
0
 public virtual Task <bool> IsSubscribedAsync(int?tenantId, string webhookName)
 {
     return(_asyncQueryableExecuter.AnyAsync(_webhookSubscriptionRepository.GetAll()
                                             .Where(subscriptionInfo =>
                                                    subscriptionInfo.TenantId == tenantId &&
                                                    subscriptionInfo.IsActive &&
                                                    subscriptionInfo.Webhooks.Contains("\"" + webhookName + "\"")
                                                    )));
 }
Beispiel #2
0
        public async Task <bool> HasXConsecutiveFailAsync(long?tenantId, Guid subscriptionId, int failCount)
        {
            using (_unitOfWorkManager.Current.SetTenantId(tenantId))
            {
                if (await _webhookSendAttemptRepository.CountAsync(x => x.WebhookSubscriptionId == subscriptionId) < failCount)
                {
                    return(false);
                }

                return(!await _asyncQueryableExecuter.AnyAsync(
                           _webhookSendAttemptRepository.GetAll()
                           .OrderByDescending(attempt => attempt.CreationTime)
                           .Take(failCount)
                           .Where(attempt => attempt.ResponseStatusCode == HttpStatusCode.OK)
                           ));
            }
        }