Example #1
0
 public WebhookMiddleware(IOptionsSnapshot <KenticoOptions> versusOptions, IWebhookListener <WebhookSubjectModel> webhookListener)
 {
     _secret          = versusOptions.Value.KenticoCloudWebhookSecret;
     _webhookListener = webhookListener;
 }
 public KenticoCloudController(IWebhookListener kenticoCloudWebhookListener)
 {
     WebhookListener = kenticoCloudWebhookListener ?? throw new ArgumentNullException(nameof(kenticoCloudWebhookListener));
 }
        public ReactiveCacheManager(IOptions <ProjectOptions> projectOptions, IMemoryCache memoryCache, IDependentTypesResolver relatedTypesResolver, IWebhookListener webhookListener)
        {
            CacheExpirySeconds      = projectOptions?.Value?.CacheTimeoutSeconds ?? throw new ArgumentNullException(nameof(projectOptions));
            MemoryCache             = memoryCache ?? throw new ArgumentNullException(nameof(memoryCache));
            _dependentTypesResolver = relatedTypesResolver ?? throw new ArgumentNullException(nameof(relatedTypesResolver));

            WebhookObservableFactory
            .GetObservable(webhookListener, nameof(webhookListener.WebhookNotification))
            .Where(args => InvalidatingOperations.Any(operation => operation.Equals(args.Operation, StringComparison.Ordinal)))
            .Throttle(TimeSpan.FromSeconds(1))
            .DistinctUntilChanged()
            .Subscribe((args) => InvalidateEntry(args.IdentifierSet));
        }