public override void PostAddMember(Guid mkList, Guid member, ConnectionHelper ch) { //get member type MarketingListInfo listInfo = Common.GetListTargetType(ch.OrganizationService, mkList); SendMemberToNewsman(listInfo, member, ch.OrganizationService); }
/// <summary> /// Target types: Account - 1, Contact - 2, Lead - 4 /// </summary> /// <param name="service">CRM org service</param> /// <param name="listId">CRM marketing list guid</param> /// <returns></returns> public static MarketingListInfo GetListTargetType(IOrganizationService service, Guid listId) { Entity mklist = service.Retrieve("list", listId, new ColumnSet("listname", "createdfromcode", "nmc_newsmansegmentid")); MarketingListInfo listInfo = new MarketingListInfo(); if (mklist.Contains("listname")) { listInfo.ListName = (string)mklist["listname"]; } if (mklist.Contains("createdfromcode")) { int entityType = ((OptionSetValue)mklist["createdfromcode"]).Value; listInfo.ListTargetType = entityType == 1 ? "account" : (entityType == 2 ? "contact" : "lead"); } if (mklist.Contains("nmc_newsmansegmentid")) { listInfo.NewsmanSegmentId = mklist["nmc_newsmansegmentid"].ToString(); } return(listInfo); }
private void SendMemberToNewsman(MarketingListInfo listInfo, Guid member, IOrganizationService service) { //get member email and information Subscriber subscriber = Common.CreateSubscriber(service, member, listInfo.ListTargetType); if (subscriber != null) { #region check config params string apikey = Common.GetParamValue(service, "ApiKey"); string userid = Common.GetParamValue(service, "UserId"); string nmList = Common.GetParamValue(service, "Default List"); if (apikey == null || userid == null || nmList == null) { return; } #endregion using (NewsmanAPI api = new NewsmanAPI(apikey, userid)) { var resp = api.ImportSubscribers(nmList, listInfo.NewsmanSegmentId, subscriber); Common.LogToCRM(service, $"Importing [{subscriber.Email}] for [{listInfo.ListName}] list", $"Import id: {resp.Replace("\"","")}"); } } }