public static IList<InterestGroup> GetInterestGroups(string listId, ApiKey apiKey = null) { apiKey = apiKey ?? new ApiKey(); // load from config var data = new Dictionary<string, object>(); data["output"] = "json"; data["method"] = "listInterestGroupings"; data["apikey"] = apiKey.ToString(); data["id"] = listId; DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(IList<InterestGroup>)); using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(HttpUtils.Send(apiKey.Url, data)))) { return serializer.ReadObject(ms) as IList<InterestGroup>; } //return JsonConvert.DeserializeObject<IList<InterestGroup>>(HttpUtils.Send(apiKey.Url, data)); }
public static MailingList GetByProperty(string propertyName, object propertyValue, ApiKey apiKey = null) { apiKey = apiKey ?? new ApiKey(); // load from config var data = new Dictionary<string, object>(); data["output"] = "json"; data["method"] = "lists"; data["apikey"] = apiKey.ToString(); data["filters["+propertyName+"]"] = propertyValue; DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(MailingListCollection)); using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(HttpUtils.Send(apiKey.Url, data)))) { var lists = serializer.ReadObject(ms) as MailingListCollection; //var lists = JsonConvert.DeserializeObject<MailingListCollection>(HttpUtils.Send(apiKey.Url, data)); if (lists != null && lists.MailingLists.Count > 0) return lists.MailingLists[0]; } return null; }
public static void Subscribe(string listId, Subscriber subscriber, ApiKey apiKey = null) { apiKey = apiKey ?? new ApiKey(); // load from config var data = new Dictionary<string, object>(); data["output"] = "json"; data["method"] = "listSubscribe"; data["apikey"] = apiKey.ToString(); data["id"] = listId; data["email_address"] = subscriber.Email; data["double_optin"] = "false"; if (subscriber.UpdateIfExists) data["update_existing"] = "true"; if (subscriber.AppendInterests) data["replace_interests"] = "false"; if (!string.IsNullOrEmpty(subscriber.FirstName)) data["merge_vars[FNAME]"] = subscriber.FirstName; if (!string.IsNullOrEmpty(subscriber.LastName)) data["merge_vars[LNAME]"] = subscriber.LastName; // merge other fields foreach (var key in subscriber.Data.Keys) data["merge_vars[" + key + "]"] = subscriber.Data[key]; if (subscriber.InterestGroups.Count > 0) { for (var igroup = 0; igroup < subscriber.InterestGroups.Count; igroup++) { data["merge_vars[GROUPINGS][" + igroup + "][name]"] = subscriber.InterestGroups[igroup].GroupName; data["merge_vars[GROUPINGS][" + igroup + "][groups]"] = string.Join(",", subscriber.InterestGroups[igroup].Interests); } } HttpUtils.Send(apiKey.Url, data); }