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)); }