コード例 #1
0
 public virtual async Task InsertAsync(WebhookSubscriptionInfo webhookInfo)
 {
     await _unitOfWorkManager.WithUnitOfWorkAsync(async() =>
     {
         await _webhookSubscriptionRepository.InsertAsync(webhookInfo);
     });
 }
コード例 #2
0
 public virtual async Task UpdateAsync(WebhookSubscriptionInfo webhookSubscription)
 {
     await _unitOfWorkManager.WithUnitOfWorkAsync(async() =>
     {
         await _webhookSubscriptionRepository.UpdateAsync(webhookSubscription);
     });
 }
コード例 #3
0
 public virtual void AddWebhook(WebhookSubscriptionInfo subscription, string webhookName)
 {
     UnitOfWorkManager.WithUnitOfWork(() =>
     {
         CheckPermissions(subscription.TenantId, webhookName);
         subscription.SubscribeWebhook(webhookName);
     });
 }
コード例 #4
0
 public virtual async Task AddWebhookAsync(WebhookSubscriptionInfo subscription, string webhookName)
 {
     await UnitOfWorkManager.WithUnitOfWorkAsync(async() =>
     {
         await CheckPermissionsAsync(subscription.TenantId, webhookName);
         subscription.SubscribeWebhook(webhookName);
     });
 }
コード例 #5
0
        /// <summary>
        /// Return List of subscribed webhooks definitions <see cref="WebhookSubscriptionInfo.Webhooks"/>
        /// </summary>
        /// <returns></returns>
        public static List <string> GetSubscribedWebhooks(this WebhookSubscriptionInfo webhookSubscription)
        {
            if (webhookSubscription.Webhooks.IsNullOrWhiteSpace())
            {
                return(new List <string>());
            }

            return(webhookSubscription.Webhooks.FromJsonString <List <string> >());
        }
コード例 #6
0
        /// <summary>
        /// Returns additional webhook headers <see cref="WebhookSubscriptionInfo.Headers"/>
        /// </summary>
        /// <returns></returns>
        public static IDictionary <string, string> GetWebhookHeaders(this WebhookSubscriptionInfo webhookSubscription)
        {
            if (webhookSubscription.Headers.IsNullOrWhiteSpace())
            {
                return(new Dictionary <string, string>());
            }

            return(webhookSubscription.Headers.FromJsonString <Dictionary <string, string> >());
        }
コード例 #7
0
        /// <summary>
        /// if subscribed to given webhook
        /// </summary>
        /// <returns></returns>
        public static bool IsSubscribed(this WebhookSubscriptionInfo webhookSubscription, string webhookName)
        {
            if (webhookSubscription.Webhooks.IsNullOrWhiteSpace())
            {
                return(false);
            }

            return(webhookSubscription.GetSubscribedWebhooks().Contains(webhookName));
        }
コード例 #8
0
        /// <summary>
        /// Adds webhook subscription to <see cref="WebhookSubscriptionInfo.Webhooks"/> if not exists
        /// </summary>
        public static void AddWebhookHeader(this WebhookSubscriptionInfo webhookSubscription, string key, string value)
        {
            if (key.IsNullOrWhiteSpace())
            {
                throw new ArgumentNullException(nameof(key), $"{nameof(key)} can not be null, empty or whitespace!");
            }

            if (value.IsNullOrWhiteSpace())
            {
                throw new ArgumentNullException(nameof(value), $"{nameof(value)} can not be null, empty or whitespace!");
            }

            var headers = webhookSubscription.GetWebhookHeaders();

            headers[key] = value;

            webhookSubscription.Headers = headers.ToJsonString();
        }
コード例 #9
0
        /// <summary>
        /// Adds webhook subscription to <see cref="WebhookSubscriptionInfo.Webhooks"/> if not exists
        /// </summary>
        /// <param name="webhookSubscription"></param>
        /// <param name="header">Key of header</param>
        public static void RemoveWebhookHeader(this WebhookSubscriptionInfo webhookSubscription, string header)
        {
            if (header.IsNullOrWhiteSpace())
            {
                throw new ArgumentNullException(nameof(header), $"{nameof(header)} can not be null, empty or whitespace!");
            }

            var headers = webhookSubscription.GetWebhookHeaders();

            if (!headers.ContainsKey(header))
            {
                return;
            }

            headers.Remove(header);

            webhookSubscription.Headers = headers.ToJsonString();
        }
コード例 #10
0
        /// <summary>
        ///  Removes webhook subscription from <see cref="WebhookSubscriptionInfo.Webhooks"/> if exists
        /// </summary>
        /// <param name="webhookSubscription"></param>
        /// <param name="name">webhook unique name</param>
        public static void UnsubscribeWebhook(this WebhookSubscriptionInfo webhookSubscription, string name)
        {
            name = name.Trim();
            if (name.IsNullOrWhiteSpace())
            {
                throw new ArgumentNullException(nameof(name), $"{nameof(name)} can not be null, empty or whitespace!");
            }

            var webhookDefinitions = webhookSubscription.GetSubscribedWebhooks();

            if (!webhookDefinitions.Contains(name))
            {
                return;
            }

            webhookDefinitions.Remove(name);
            webhookSubscription.Webhooks = webhookDefinitions.ToJsonString();
        }
コード例 #11
0
 public virtual void Update(WebhookSubscriptionInfo webhookSubscription)
 {
     _unitOfWorkManager.WithUnitOfWork(() => _webhookSubscriptionRepository.Update(webhookSubscription));
 }
コード例 #12
0
 public virtual void Insert(WebhookSubscriptionInfo webhookInfo)
 {
     _unitOfWorkManager.WithUnitOfWork(() => _webhookSubscriptionRepository.Insert(webhookInfo));
 }
コード例 #13
0
 public virtual void Update(WebhookSubscriptionInfo webhookSubscription)
 {
     _webhookSubscriptionRepository.Update(webhookSubscription);
 }
コード例 #14
0
 public virtual async Task UpdateAsync(WebhookSubscriptionInfo webhookSubscription)
 {
     await _webhookSubscriptionRepository.UpdateAsync(webhookSubscription);
 }
コード例 #15
0
 public virtual void Insert(WebhookSubscriptionInfo webhookInfo)
 {
     _webhookSubscriptionRepository.Insert(webhookInfo);
 }
コード例 #16
0
 /// <summary>
 /// Clears all <see cref="WebhookSubscriptionInfo.Webhooks"/>
 /// </summary>
 /// <param name="webhookSubscription"></param>
 public static void RemoveAllWebhookHeaders(this WebhookSubscriptionInfo webhookSubscription)
 {
     webhookSubscription.Headers = null;
 }
コード例 #17
0
        public async Task AddWebhookAsync(WebhookSubscriptionInfo subscription, string webhookName)
        {
            await CheckPermissionsAsync(subscription.TenantId, webhookName);

            subscription.SubscribeWebhook(webhookName);
        }
コード例 #18
0
 /// <summary>
 /// Clears all <see cref="WebhookSubscriptionInfo.Webhooks"/>
 /// </summary>
 /// <param name="webhookSubscription"></param>
 public static void RemoveAllSubscribedWebhooks(this WebhookSubscriptionInfo webhookSubscription)
 {
     webhookSubscription.Webhooks = null;
 }
コード例 #19
0
        public void AddWebhook(WebhookSubscriptionInfo subscription, string webhookName)
        {
            CheckPermissions(subscription.TenantId, webhookName);

            subscription.SubscribeWebhook(webhookName);
        }
コード例 #20
0
 public virtual async Task InsertAsync(WebhookSubscriptionInfo webhookInfo)
 {
     await _webhookSubscriptionRepository.InsertAsync(webhookInfo);
 }