public void AddRcptMergeVars(string rcptEmail, string name, dynamic content) { var mergeVar = MergeVars.FirstOrDefault(x => x.Rcpt == rcptEmail); if (mergeVar == null) { MergeVars.Add(mergeVar = new MandrillRcptMergeVar { Rcpt = rcptEmail }); } mergeVar.Vars.Add(new MandrillMergeVar { Name = name, Content = content }); }
public void RepeatHeaderTest() { var n = new NameValueCollection(); MergeVars l = new MergeVars("a", n); dynamic o1 = new ExpandoObject(); o1.bb = 1; o1.cc = 2; l.Add(o1); dynamic o2 = new ExpandoObject(); o2.bb = 4; o2.cc = 5; o2._rcpt = "*****@*****.**"; l.Add(o2); var v = n.GetValues("a"); Assert.AreEqual(2, v.Count()); }
public Dictionary <string, string> ListSubscribe(string email, string listIndex, string merge_vars, string groupings, string email_type) { if (checkEmail(email)) { list_key = System.Web.Configuration.WebConfigurationManager.AppSettings["MailChimp:listKey" + listIndex]; MergeVars mergeVars = jsonSerializer.Deserialize <MergeVars>(merge_vars); string mergeVars_url = "&merge_vars[OPTIN_TIME]=now"; foreach (MergeVar thisMergeVar in mergeVars.merge_vars) { mergeVars_url += "&merge_vars[" + thisMergeVar.key + "]=" + HttpUtility.UrlEncode(thisMergeVar.value); } Groupings groupingsDeserialized = jsonSerializer.Deserialize <Groupings>(groupings); string groupings_url = ""; foreach (Grouping thisGroup in groupingsDeserialized.groupings) { groupings_url += "&merge_vars[GROUPINGS][0][name]=" + HttpUtility.UrlEncode(thisGroup.key) + "&merge_vars[GROUPINGS][0][groups]=" + HttpUtility.UrlEncode(thisGroup.value); } string url = "https://" + server + ".api.mailchimp.com/1.3/?method=listSubscribe&apikey=" + api_key + "&id=" + list_key + "&email_address=" + HttpUtility.UrlEncode(email) + mergeVars_url + groupings_url + "&email_type=" + email_type + "&update_existing=true&double_optin=true"; returnValue.Add("url", url); GetUrl(url); //GetUrl("https://" + server + ".api.mailchimp.com/1.3/?method=listInterestGroupings&apikey=" + api_key + "&id=" + list_key); returnValue.Add("status", status.SUCCESS.ToString()); return(returnValue); } else { returnValue.Add("status", status.ERROR.ToString()); returnValue.Add("message", "Invalid Email"); return(returnValue); } }