private void HandleBatchSubscribeRejects(int userId, BatchSubscribeResult batchResult) {// assuming no errors possible on updated emails (emails that already in mailchimp list) (approved by Serge) if (batchResult.ErrorCount == 0) { return; } foreach (var listError in batchResult.Errors) { try { ChimpRejectsRepository.Add(new CHIMP_Rejects { AddOn = DateTime.Now, Email = listError.Email.Email, UserId = userId, Message = string.Format("code:{0}, message:{1}", listError.ErrorCode, listError.ErrorMessage) }); string error; ChimpRejectsRepository.UnitOfWork.CommitAndRefreshChanges(out error); } catch (Exception e) { Logger.Error("SaveRejectedEmail", e, CommonEnums.LoggerObjectTypes.Mailchimp); } } }
public void BatchSubscribe_Successful() { // Arrange MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey); ListResult lists = mc.GetLists(); List <BatchEmailParameter> emails = new List <BatchEmailParameter>(); BatchEmailParameter email1 = new BatchEmailParameter() { Email = new EmailParameter() { Email = "*****@*****.**" } }; BatchEmailParameter email2 = new BatchEmailParameter() { Email = new EmailParameter() { Email = "*****@*****.**" } }; emails.Add(email1); emails.Add(email2); // Act BatchSubscribeResult results = mc.BatchSubscribe(lists.Data[1].Id, emails); // Assert Assert.IsNotNull(results); Assert.IsTrue(results.AddCount == 2); }
/// <summary> /// Batches the subscribe. /// </summary> /// <param name="recordList">The records</param> public virtual BatchSubscribeResult BatchSubscribe(IEnumerable <MailChimpEventQueueRecord> recordList) { if (String.IsNullOrEmpty(_mailChimpSettings.DefaultListId)) { throw new ArgumentException("MailChimp list is not specified"); } MailChimpManager mc = new MailChimpManager(_mailChimpSettings.ApiKey); List <BatchEmailParameter> emailList = new List <BatchEmailParameter>(); foreach (var sub in recordList) { emailList.Add(new BatchEmailParameter() { Email = new EmailParameter() { Email = sub.Email } }); } BatchSubscribeResult listSubscribeOutput = mc.BatchSubscribe(_mailChimpSettings.DefaultListId, emailList, false, true); return(listSubscribeOutput); }
public ActionResult Update(string id) { var defaultEvent = service.GetDefaultEvent(); int eventid = defaultEvent.ID; MailChimpManager mc = new MailChimpManager(_mailchimpKey); ListInfo mailingList = mc.GetLists().Data.Where(l => l.Id == id).SingleOrDefault(); List <BatchEmailParameter> batchList = new List <BatchEmailParameter>(); if (mailingList.Name.Contains("Speakers")) { foreach (var speaker in service.GetSpeakers(eventid)) { MyMergeVar myMergeVars = new MyMergeVar(); myMergeVars.FirstName = speaker.FirstName; myMergeVars.LastName = speaker.LastName; // Create the email parameter BatchEmailParameter batchEmail = new BatchEmailParameter(); EmailParameter email = new EmailParameter() { Email = speaker.Email }; batchEmail.Email = email; batchEmail.MergeVars = myMergeVars; batchList.Add(batchEmail); } } if (mailingList.Name.Contains("Attendees")) { foreach (var attendee in service.GetAllAttendees(eventid)) { MyMergeVar myMergeVars = new MyMergeVar(); myMergeVars.FirstName = attendee.FirstName; myMergeVars.LastName = attendee.LastName; // Create the email parameter EmailParameter email = new EmailParameter() { Email = attendee.Email }; BatchEmailParameter batchEmail = new BatchEmailParameter(); batchEmail.Email = email; batchEmail.MergeVars = myMergeVars; batchList.Add(batchEmail); } } BatchSubscribeResult bResult = mc.BatchSubscribe(id, batchList, false, true, true); //MyMergeVar myMergeVars = new MyMergeVar(); //myMergeVars.FirstName = subscriber.FirstName; //myMergeVars.LastName = subscriber.LastName; // Create the email parameter //EmailParameter email = new EmailParameter() //{ // Email = subscriber.EmailAddress //}; //EmailParameter results = mc.Subscribe(_mailchimpGroupId, email, myMergeVars); return(RedirectToAction("Index")); }
public void BatchSubscribe_Successful() { // Arrange MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey); ListResult lists = mc.GetLists(); List <BatchEmailParameter> emails = new List <BatchEmailParameter>(); BatchEmailParameter email1 = new BatchEmailParameter() { Email = new EmailParameter() { Email = "*****@*****.**" } }; MergeVar mVar1 = new MergeVar(); mVar1.Add("FNAME", "first1" + DateTime.Now); mVar1.Add("LNAME", "last1" + DateTime.Now); email1.MergeVars = mVar1; emails.Add(email1); BatchEmailParameter email2 = new BatchEmailParameter() { Email = new EmailParameter() { Email = "*****@*****.**" } }; MergeVar mVar2 = new MergeVar(); mVar2.Add("FNAME", "first2" + DateTime.Now); mVar2.Add("LNAME", "last2" + DateTime.Now); email2.MergeVars = mVar2; emails.Add(email2); // Act BatchSubscribeResult results = mc.BatchSubscribe(lists.Data[0].Id, emails); // Assert Assert.IsNotNull(results); Assert.IsTrue(results.AddCount == 2); // load List <EmailParameter> emailsP = new List <EmailParameter>(); emailsP.Add(email1.Email); MemberInfoResult memberInfo = mc.GetMemberInfo(lists.Data[0].Id, emailsP); Assert.AreEqual(mVar1["FNAME"], memberInfo.Data[0].MemberMergeInfo["FNAME"]); Assert.AreEqual(mVar1["LNAME"], memberInfo.Data[0].MemberMergeInfo["LNAME"]); }