public static void AddSubscriberToList(String ListID, String Email, String FirstName, String LastName) { System.Threading.ThreadPool.QueueUserWorkItem(delegate { MailChimp.Net.Models.Member m = new MailChimp.Net.Models.Member(); m.ListId = ListID; m.EmailAddress = Email; m.Status = MailChimp.Net.Models.Status.Undefined; // we use 'Name' and |*NAME*| on MailChimp campaigns rather than the default 'First Name' |*FNAME*| and 'Last Name' |*LNAME*| m.MergeFields.Add("NAME", (FirstName + " " + LastName).Trim()); //m.MergeFields.Add("FNAME", FirstName); //m.MergeFields.Add("LNAME", LastName); try { Manager.Members.AddOrUpdateAsync(ListID, m); // insert into datageek String uqry = "UPDATE dbl_mail_chimp_list SET Subscribers=Subscribers+1 WHERE MailChimpListID=@ListID"; SQL.Update(uqry, "@ListID", ListID); DataGeekLists = SQL.SelectDataTable("SELECT * FROM dbl_mail_chimp_list WHERE Deleted=0", null, null); String iqry = "INSERT IGNORE INTO dbl_mail_chimp_list_subscriber (ListID, Email, Subscribed) VALUES ((SELECT ListID FROM dbl_mail_chimp_list WHERE MailChimpListID=@ListID), @Email, @Subscribed)"; SQL.Insert(iqry, new String[] { "@ListID", "@Email", "@Subscribed" }, new Object[] { ListID, Email, 0 }); } catch { } }); }
public bool AddUpdateMailChimpContact(string userEmail, string fName, string lName) { string apiKey = db_Ref.GetT_OE_APP_SETTING("MAILCHIMP_API"); string listId = db_Ref.GetT_OE_APP_SETTING("MAILCHIMP_LISTID"); ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12; IMailChimpManager manager = new MailChimpManager(apiKey); try { //check if user exists var userExists = manager.Members.ExistsAsync(listId, userEmail).Result; if (!userExists) { //create user MailChimp.Net.Models.Member _newMember = new MailChimp.Net.Models.Member { EmailAddress = userEmail, StatusIfNew = MailChimp.Net.Models.Status.Subscribed, }; _newMember.MergeFields.Add("FNAME", fName); _newMember.MergeFields.Add("LNAME", lName); //_newMember.Status = MailChimp.Net.Models.Status.Subscribed; MailChimp.Net.Models.MemberTag _tag = new MailChimp.Net.Models.MemberTag { Name = "EECIP User" }; _newMember.Tags.Add(_tag); var xxx = manager.Members.AddOrUpdateAsync(listId, _newMember).Result; } else { //update user MailChimp.Net.Models.Member _newMember = new MailChimp.Net.Models.Member { EmailAddress = userEmail, StatusIfNew = MailChimp.Net.Models.Status.Subscribed, }; _newMember.MergeFields.Add("FNAME", fName); _newMember.MergeFields.Add("LNAME", lName); var xxx = manager.Members.AddOrUpdateAsync(listId, _newMember).Result; //update EECIP User Tag only MailChimp.Net.Models.Tags tags = new MailChimp.Net.Models.Tags(); tags.MemberTags.Add(new MailChimp.Net.Models.Tag() { Name = "EECIP User", Status = "active" }); manager.Members.AddTagsAsync(listId, userEmail, tags).GetAwaiter().GetResult(); } return(true); } catch (Exception ex) { return(false); } }
public async Task<MailChimp.Net.Models.Member> GetMember(string listId, string email) { IMailChimpManager manager = new MailChimpManager(APIKEY); MailChimp.Net.Models.Member SingleMember = await manager.Members.GetAsync(listId, email).ConfigureAwait(false); return SingleMember; }
public bool addUserToList(string apiKey, string idList, string email) { MailChimp.Net.Models.Member member = new MailChimp.Net.Models.Member() { EmailAddress = email, Status = MailChimp.Net.Models.Status.Subscribed }; MailChimp.Net.Interfaces.IMailChimpManager mailChimpManager = new MailChimp.Net.MailChimpManager(apiKey); var result = Task.Run(() => mailChimpManager.Members.AddOrUpdateAsync(idList, member)).Result; return(result.Id != null); }
public async Task<ActionResult> SubscribeUser(string listId, string email) { try { if (listId == "NA") return Content("error"); using (var db = new BePreferencesEntities()) { if (db.BEMemberLists.FirstOrDefault(m => m.Email == email && m.ListId == listId && m.Archived == true) != null) { BEMemberList member = db.BEMemberLists.FirstOrDefault(e => e.Email == email && e.ListId == listId); if (member != null) { // MailChimp.Net.Models.Member memberToSubscribe = await GetMember(currentlistId, email); var newMember = new MailChimp.Net.Models.Member { EmailAddress = email, StatusIfNew = MailChimp.Net.Models.Status.Subscribed }; newMember.MergeFields.Add("FNAME", member.FirstName); newMember.MergeFields.Add("LNAME", member.LastName); newMember.MergeFields.Add("FULLNAME", member.FirstName + " " + member.LastName); await this.manager.Members.AddOrUpdateAsync(listId, newMember); ReInstateMemberToDatabase(member); return RedirectToAction("Index", new { email = member.Email }); } else { return RedirectToAction("Index", new { email = email }); } } else { BEMemberList member = db.BEMemberLists.FirstOrDefault(e => e.Email == email); if (member != null) { // MailChimp.Net.Models.Member memberToSubscribe = await GetMember(currentlistId, email); var newMember = new MailChimp.Net.Models.Member { EmailAddress = email, StatusIfNew = MailChimp.Net.Models.Status.Subscribed }; newMember.MergeFields.Add("FNAME", member.FirstName); newMember.MergeFields.Add("LNAME", member.LastName); newMember.MergeFields.Add("FULLNAME", member.FirstName + " " + member.LastName); await this.manager.Members.AddOrUpdateAsync(listId, newMember); AddMemberToDatabase(member, listId); return RedirectToAction("Index", new { email = member.Email }); } else { return RedirectToAction("Index", new { email = email }); } } } } catch (Exception ex) { throw ex; } }