/// <summary> /// ########## ########## ############# ####### # ######### email. /// </summary> /// <param name="eventType">######### ######### <see cref="Mandrill.WebHookEventType"/>.</param> /// <returns>########## ############# ####### # ######### email.</returns> public static Guid GetBulkEmailResponse(this WebHookEventType eventType) { switch (eventType) { case WebHookEventType.Click: return(MarketingConsts.BulkEmailResponseClickedId); case WebHookEventType.Open: return(MarketingConsts.BulkEmailResponseOpenedId); case WebHookEventType.Hard_bounce: return(MarketingConsts.BulkEmailResponseHardBounceId); case WebHookEventType.Soft_bounce: return(MarketingConsts.BulkEmailResponseSoftBounceId); case WebHookEventType.Spam: return(MarketingConsts.BulkEmailResponseSpamId); case WebHookEventType.Send: return(MarketingConsts.BulkEmailResponseSentId); case WebHookEventType.Unsub: return(MarketingConsts.BulkEmailResponseUnsubId); case WebHookEventType.Reject: return(MarketingConsts.BulkEmailResponseRejectedId); case WebHookEventType.Deferral: return(MarketingConsts.BulkEmailResponseDeferralId); default: return(Guid.Empty); } }
private object GetPayload(WebHookSubscription subscription, WebHookEventType eventType, Node node, VersionNumber previousVersion) { return(string.IsNullOrWhiteSpace(subscription.Payload) ? GetDefaultPayload(subscription, eventType, node, previousVersion) : JsonConvert.DeserializeObject(subscription.Payload)); }
private object GetPayload(WebHookSubscription subscription, WebHookEventType eventType, Node node, VersionNumber previousVersion) { var defaultPayload = GetDefaultPayload(subscription, eventType, node, previousVersion); return(string.IsNullOrWhiteSpace(subscription.Payload) ? defaultPayload : GetMergedPayload(subscription, eventType, node, defaultPayload)); }
//TODO вынести отсюда private string GetWebhookEventByType(WebHookEventType type) { switch (type) { case WebHookEventType.IssueCreated: return("jira:issue_created"); case WebHookEventType.IssueUpdated: return("jira:issue_updated"); default: //TODO реализовать остальные эвенты throw new NotImplementedException(); } }
private object GetDefaultPayload(WebHookSubscription subscription, WebHookEventType eventType, Node node, VersionNumber previousVersion) { return(new { nodeId = node?.Id ?? 0, versionId = node?.VersionId ?? 0, version = node?.Version?.ToString(), previousVersion = previousVersion?.ToString(), versionModificationDate = node?.VersionModificationDate ?? DateTime.MinValue, modifiedBy = node?.ModifiedById ?? 0, path = node?.Path, name = node?.Name, displayName = node?.DisplayName, eventName = eventType.ToString(), subscriptionId = subscription.Id, sentTime = DateTime.UtcNow, repository = _clientStoreOptions.RepositoryUrl?.RemoveUrlSchema() }); }
private object GetMergedPayload(WebHookSubscription subscription, WebHookEventType eventType, Node node, object defaultPayload) { // replace dynamic parameters (e.g. currentuser, content.Path, etc.) var replacedPayload = TemplateManager.Replace(typeof(WebHooksTemplateReplacer), subscription.Payload, new WebHooksTemplateReplacerContext { Node = node, EventType = eventType, Subscription = subscription }); var defaultJson = JsonConvert.SerializeObject(defaultPayload, Formatting.Indented); var jo = JsonConvert.DeserializeObject <JObject>(defaultJson); // merge the provided custom payload into the default var newJson = JsonConvert.DeserializeObject <JObject>(replacedPayload); jo.Merge(newJson); return(jo); }
/// <summary> /// ########## ###### # email #########. /// </summary> /// <param name="eventType">######### ######### <see cref="Mandrill.WebHookEventType"/>.</param> /// <returns>###### # email #########.</returns> public static BulkEmailResponseCode GetBulkEmailResponseCode(this WebHookEventType eventType) { switch (eventType) { case WebHookEventType.Click: return(BulkEmailResponseCode.Clicked); case WebHookEventType.Open: return(BulkEmailResponseCode.Opened); case WebHookEventType.Hard_bounce: return(BulkEmailResponseCode.HardBounce); case WebHookEventType.Soft_bounce: return(BulkEmailResponseCode.SoftBounce); case WebHookEventType.Spam: return(BulkEmailResponseCode.Spam); case WebHookEventType.Send: return(BulkEmailResponseCode.Sent); case WebHookEventType.Unsub: return(BulkEmailResponseCode.Unsub); case WebHookEventType.Reject: return(BulkEmailResponseCode.Rejected); case WebHookEventType.Deferral: return(BulkEmailResponseCode.Deferral); default: throw new InvalidCastException(eventType + "is not a defined value for enum type WebHookEventType."); } }
public Task FireWebHookAsync(WebHookSubscription subscription, WebHookEventType eventType, Node node, CancellationToken cancel) { return(_webHookClient.SendAsync(subscription.Url, eventType.ToString(), node.Id, subscription.Id, subscription.HttpMethod, GetPayload(subscription, eventType, node, null), subscription.HttpHeaders, cancel)); }
private static Task FireWebHook(HttpContext context, WebHookSubscription webhook, Node node, WebHookEventType eventType) { var eventProcessor = context.RequestServices.GetService <IWebHookEventProcessor>(); return(eventProcessor.FireWebHookAsync(webhook, eventType, node, context.RequestAborted)); }
public static async Task <Content> FireWebHook(Content webHookContent, HttpContext context, int nodeId, WebHookEventType eventType) { await FireWebHook(context, (WebHookSubscription)webHookContent.ContentHandler, Node.LoadNode(nodeId), eventType); return(webHookContent); }
public WebHookSubscriptionInfo(WebHookSubscription subscription, WebHookEventType eventType) { Subscription = subscription; EventType = eventType; }