public void TemplateMethods_Sucessful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            TemplateAddResult addTemplateResult = null;
            try
            {
                //  Act
                addTemplateResult = mc.AddTemplate("Test Name " + Path.GetRandomFileName(), "Test Html");

                //  Assert
                Assert.IsNotNull(addTemplateResult);

                // Act
                var templateInformation = mc.GetTemplateInformation(addTemplateResult.TemplateId);

                // Assert
                Assert.IsNotNull(templateInformation);

                var templateUpdateValue = new TemplateUpdateValue
                {
                    Html = "Test Html Updated",
                    Name = "Test Name Updated " + Path.GetRandomFileName()
                };

                // Act
                var templateUpdate = mc.UpdateTemplate(addTemplateResult.TemplateId, templateUpdateValue);

                // Assert
                Assert.IsNotNull(templateUpdate);
            }
            finally
            {
                // Cleanup
                if (addTemplateResult != null)
                {
                    // Act
                    var deletedTemplate = mc.DeleteTemplate(addTemplateResult.TemplateId);

                    // Note: this might override a different assert.
                    // Assert
                    Assert.IsNotNull(deletedTemplate);

                    // Act
                    var undeletedTemplate = mc.UndeleteTemplate(addTemplateResult.TemplateId);

                    // Note: this might override a different assert.
                    // Assert
                    Assert.IsNotNull(undeletedTemplate);

                    // Act
                    var deletedTemplate2 = mc.DeleteTemplate(addTemplateResult.TemplateId);

                    // Note: this might override a different assert.
                    // Assert
                    Assert.IsNotNull(deletedTemplate2);
                }
            }
        }
Exemple #2
0
        public void Send(String idUser, String firstName, String email)
        {
            String emailAPI = ConfigurationManager.AppSettings["MailChimpAPI"].ToString();

            MailChimpManager mc = new MailChimpManager(emailAPI);

            ListResult lists = mc.GetLists();

            EmailConfirm emailConfirm = new EmailConfirm();
            //emailConfirm.Groupings = new List<Grouping>();
            //emailConfirm.Groupings.Add(new Grouping());
            //emailConfirm.Groupings[0].Id = 1234; // replace with your grouping id
            //emailConfirm.Groupings[0].GroupNames = new List<string>();
            //emailConfirm.Groupings[0].GroupNames.Add("Your Group Name");
            emailConfirm.FirstName = firstName;
            emailConfirm.IdUser = idUser;

            //  Create the email parameter
            EmailParameter parameters = new EmailParameter()
            {
                Email = email
            };

            //            ListResult lr = mc.GetLists();
            EmailParameter results = mc.Subscribe("d31fd680be", parameters, emailConfirm);
        }
Exemple #3
0
        static void GetLists(MailChimpManager mailChimp)
        {
            // Get the subscriber lists
            ListsCollection lists = mailChimp.GetLists();

            Console.WriteLine("Got {0} out of {1} lists", lists.Lists.Count, lists.TotalItems);
        }
Exemple #4
0
        public void GetMergeVars_Successful()
        {
            //  Arrange
            MailChimpManager mc    = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult       lists = mc.GetLists();

            // we don't want to have an existing merge var interfere
            try { mc.DeleteMergeVar(lists.Data.First().Id, "TESTGETVAR"); }
            catch { }
            MergeVarOptions options = new MergeVarOptions()
            {
                FieldType = "url",
                HelpText  = "A url, such as https://github.com/danesparza/MailChimp.NET"
            };

            mc.AddMergeVar(lists.Data.First().Id, "TESTGETVAR", "Test Value", options);

            // Act
            MergeVarResult result = mc.GetMergeVars(lists.Data.Select(l => l.Id));

            // Assert
            Assert.IsNotNull(result.Data);
            Assert.IsTrue(result.Data.Any(d => d.MergeVars.Any(m => m.Tag == "TESTGETVAR")));

            // Clean up
            mc.DeleteMergeVar(lists.Data.First().Id, "TESTGETVAR");
        }
Exemple #5
0
        public bool GetSubscriptionStatus(string email, int domainID)
        {
            tbl_Domains domain = DomainsRepository.GetByID(domainID);

            if (domain == null || !domain.DO_EnableMailChimp)
            {
                return(false);
            }

            MailChimpManager manager    = new MailChimpManager(domain.DO_MailChimpAPIKey);
            EmailParameter   emailParam = new EmailParameter()
            {
                Email = email
            };

            try
            {
                var val = manager.GetListsForEmail(emailParam);
                return(val != null && val.Count > 0 ? true : false);
            }
            catch (MailChimpAPIException e)
            {
                Log.Error(String.Format("MailChimp Status: Subscription exception: \"{0}\" ,for \"{1}\"", e.MailChimpAPIError.Name, email), e);
            }
            return(false);
        }
Exemple #6
0
        public async Task <bool> Add(ViewModels.Contact contact)
        {
            var mc        = new MailChimpManager(ConfigurationManager.AppSettings.Get("MailChimpApiKey"));
            var newMember = new Member
            {
                EmailAddress = contact.Email,
                StatusIfNew  = Status.Subscribed,
                Status       = Status.Subscribed,
            };

            newMember.MergeFields.Add("FNAME", contact.FirstName);
            newMember.MergeFields.Add("LNAME", contact.LastName);
            newMember.MergeFields.Add("F3NAME", contact.F3Name);
            newMember.MergeFields.Add("WORKOUT", contact.Workout);
            newMember.MergeFields.Add("EH", contact.EH);
            newMember.MergeFields.Add("TWITTER", contact.Twitter);
            newMember.MergeFields.Add("NOTES", " ");
            newMember.Interests.Add("eb2db7a8fd", true);


            try
            {
                var member = await mc.Members.AddOrUpdateAsync(ConfigurationManager.AppSettings["F3List"], newMember);
            }
            catch (MailChimpException mexp)
            {
                System.Diagnostics.Debug.WriteLine(mexp);
                throw;
            }
            return(true);
        }
Exemple #7
0
        public void GetMemberInfo_Successful()
        {
            //  Arrange
            MailChimpManager mc    = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult       lists = mc.GetLists();

            List <EmailParameter> emails = new List <EmailParameter>();

            EmailParameter email1 = new EmailParameter()
            {
                Email = "*****@*****.**"
            };

            EmailParameter email2 = new EmailParameter()
            {
                Email = "*****@*****.**"
            };

            emails.Add(email1);
            emails.Add(email2);

            //  Act
            MemberInfoResult results = mc.GetMemberInfo(lists.Data[1].Id, emails);

            //  Assert
            Assert.IsNotNull(results);
        }
        public async Task <IActionResult> AddSubcribeUser(string userEmail)
        {
            //using (var http = new HttpClient())
            //{
            //    http.DefaultRequestHeaders.Authorization =
            //         new AuthenticationHeaderValue("Basic", "7b6eca284d892915d0c10bd48b0a28cb-us5");
            //    MailChimpManager mc = new MailChimpManager("7b6eca284d892915d0c10bd48b0a28cb-us5");
            //    EmailParameter email = new EmailParameter()
            //    {
            //        Email = userEmail
            //    };
            //    EmailParameter results = mc.Subscribe("206aea1391", email);

            //}
            //string html="";
            //MailChimpRepository rs = new MailChimpRepository();
            //using (StreamReader SourceReader = System.IO.File.OpenText(Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\TextFile.txt", "")))
            //{
            //    html = SourceReader.ReadToEnd();
            //}
            //MailChimpRepository.userEmail = userEmail;
            //rs.CreateAndSendCampaign(html);
            IMailChimpManager _mailChimpManager = new MailChimpManager("7b6eca284d892915d0c10bd48b0a28cb-us5");
            var listId = "206aea1391";
            // Use the Status property if updating an existing member
            var member = new Member {
                EmailAddress = userEmail, StatusIfNew = Status.Subscribed
            };
            await _mailChimpManager.Members.AddOrUpdateAsync(listId, member);

            return(View());
        }
Exemple #9
0
        public async Task <bool> Add(ViewModels.Contact contact)
        {
            var mc    = new MailChimpManager(ConfigurationManager.AppSettings.Get("MailChimpApiKey"));
            var email = new EmailParameter
            {
                Email = contact.Email
            };
            var name = new NameVar
            {
                FirstName = contact.FirstName,
                LastName  = contact.LastName,
                F3Name    = contact.F3Name,
                Workout   = contact.Workout,
                EH        = contact.EH,
                Twitter   = contact.Twitter,
                Groupings = new List <Grouping>
                {
                    new Grouping
                    {
                        Id         = 4293,
                        GroupNames = new List <string>
                        {
                            "Newsletter"
                        }
                    }
                }
            };
            var result = mc.Subscribe(ConfigurationManager.AppSettings.Get("F3List"), email, name, doubleOptIn: false,
                                      sendWelcome: true);

            return(true);
        }
Exemple #10
0
        public void AddSegment_Successful()
        {
            // Arrange
            MailChimpManager          mc      = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult                lists   = mc.GetLists();
            AddCampaignSegmentOptions options = new AddCampaignSegmentOptions
            {
                Name           = "My Saved Segment",
                SegmentType    = "saved",
                SegmentOptions = new CampaignSegmentOptions
                {
                    Match      = "all",
                    Conditions = new List <CampaignSegmentCriteria>
                    {
                        new CampaignSegmentCriteria
                        {
                            Field    = "EMAIL",
                            Operator = "ends",
                            Value    = ".com",
                        }
                    }
                }
            };
            // Act
            SegmentAddResult result = mc.AddSegment(lists.Data[1].Id, options);

            // Assert
            Assert.IsNotNull(result.NewSegmentID);
        }
Exemple #11
0
        //[HttpPut]
        //[Route("modifyInfo")]
        //public async Task<IActionResult> ModifyInfo([FromBody] UserModel userModel)
        //{
        //    var user = await _context.User
        //}

        private async Task <IActionResult> UserSubscribe(UserModel userModel)
        {
            var result    = new Result <string>();
            var mailchimp = _context.ApiKey.Find(2);

            IMailChimpManager mailChimpManager = new MailChimpManager(mailchimp.ApiKey1);
            var listId = "c8326de226";

            if (userModel.IsSubscribe == 0)
            {
                var member = new Member {
                    EmailAddress = userModel.Email, StatusIfNew = Status.Unsubscribed
                };
                await mailChimpManager.Members.AddOrUpdateAsync(listId, member);
            }
            else if (userModel.IsSubscribe == 1)
            {
                var member = new Member {
                    EmailAddress = userModel.Email, StatusIfNew = Status.Subscribed
                };
                await mailChimpManager.Members.AddOrUpdateAsync(listId, member);
            }


            return(Ok(result));
        }
Exemple #12
0
        public IActionResult CreateCampaign()
        {
            MailChimpManager _mailChimpManager = new MailChimpManager("7b6eca284d892915d0c10bd48b0a28cb-us5");
            Setting          _campaignSettings = new Setting
            {
                ReplyTo     = "*****@*****.**",
                FromName    = "CoreShop",
                Title       = "Intro new product",
                SubjectLine = "Introduction",
            };
            var campaign = _mailChimpManager.Campaigns.AddAsync(new Campaign
            {
                Settings   = _campaignSettings,
                Recipients = new Recipient {
                    ListId = "206aea1391"
                },
                Type = CampaignType.Regular
            }).Result;
            var timeStr = DateTime.Now.ToString();
            var content = _mailChimpManager.Content.AddOrUpdateAsync(
                campaign.Id,
                new ContentRequest()
            {
                Template = new ContentTemplate
                {
                    Id = 248261,
                }
            }).Result;

            _mailChimpManager.Campaigns.SendAsync(campaign.Id);
            return(RedirectToAction("Index", "Home"));
        }
        public static async Task <bool> MailChimpsSubs(string email, string firstName, string surname, string phone)

        {
            string mailChimpApiKey = System.Configuration.ConfigurationManager.AppSettings["MailChimpApiKey"];
            string mailChimpListId = System.Configuration.ConfigurationManager.AppSettings["MailChimpListId"];


            IMailChimpManager manager = new MailChimpManager(mailChimpApiKey); //if you have it in code
            // Instantiate new manager
            IMailChimpManager mailChimpManager = new MailChimpManager(mailChimpApiKey);
            // var listId1 = "TestListId";
            //await mailChimpManager.Members.GetAllAsync(listId1).ConfigureAwait(false);
            var listId = mailChimpListId;
            //var mailChimpListCollection = mailChimpManager.Lists.GetAllAsync(new ListRequest
            //{
            //    Limit = 50
            //}).ConfigureAwait(false);

            // Use the Status property if updating an existing member
            var member = new Member {
                EmailAddress = email, StatusIfNew = Status.Subscribed
            };

            member.MergeFields.Add("FNAME", firstName);
            member.MergeFields.Add("LNAME", surname);
            member.MergeFields.Add("PHONE", phone);
            await mailChimpManager.Members.AddOrUpdateAsync(listId, member);

            return(true);
        }
Exemple #14
0
        private static string CreateCampignWithTemplate(WfpictContext db, CreativeVm model, string listId, int templateId)
        {
            IMailChimpManager manager = new MailChimpManager();

            LogHelper.AddLog(db, LogType.MailChimp, model.OrderNumber, "Creating campaign with template");
            var campaign = manager.Campaigns.AddAsync(new MailChimp.Net.Models.Campaign
            {
                Recipients = new Recipient
                {
                    ListId = listId
                },
                Settings = new Setting
                {
                    ReplyTo     = "*****@*****.**",
                    Title       = model.SubjectLine,
                    FromName    = "Josh Silver",
                    SubjectLine = model.SubjectLine,
                    TemplateId  = templateId,
                },
                Type = CampaignType.Regular,
            }).ConfigureAwait(false);

            var campaignId = campaign.GetAwaiter().GetResult().Id;

            return(campaignId);
        }
Exemple #15
0
        public void GetMemberActivity_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            ListResult lists = mc.GetLists();

            Assert.IsNotNull(lists.Data);
            Assert.IsTrue(lists.Data.Any());

            MembersResult members = mc.GetAllMembersForList(lists.Data[0].Id);

            Assert.IsNotNull(members.Data);
            Assert.IsTrue(members.Data.Any());

            List <EmailParameter> memberEmails = new List <EmailParameter>();

            foreach (MemberInfo member in members.Data)
            {
                memberEmails.Add(new EmailParameter()
                {
                    Email = member.Email
                });
            }

            //  Act
            MemberActivityResult results = mc.GetMemberActivity(lists.Data[0].Id, memberEmails);

            //  Assert
            Assert.IsNotNull(results);
            Assert.IsTrue(results.Data.Any());
        }
Exemple #16
0
        private static void SendCampaign(WfpictContext db, CreativeVm model, string campaignId)
        {
            IMailChimpManager manager = new MailChimpManager();

            LogHelper.AddLog(db, LogType.MailChimp, model.OrderNumber, "Sending to Test list");
            var sent = manager.Campaigns.SendAsync(campaignId).ConfigureAwait(false);
        }
Exemple #17
0
        private static int CreateTemplate(WfpictContext db, CreativeVm model)
        {
            IMailChimpManager manager = new MailChimpManager();

            LogHelper.AddLog(db, LogType.MailChimp, model.OrderNumber, "Creating template from creatives");
            var allTemplatesRequest = manager.Templates.GetAllAsync().ConfigureAwait(false);
            var allTemplates        = allTemplatesRequest.GetAwaiter().GetResult();
            int templateIdOld       = -1;

            foreach (var allTemplate in allTemplates)
            {
                if (allTemplate.Name == model.OrderNumber)
                {
                    templateIdOld = allTemplate.Id;
                    break;
                }
            }
            if (templateIdOld != -1)
            {
                LogHelper.AddLog(db, LogType.MailChimp, model.OrderNumber, "Template " + model.OrderNumber + " already exists. Deleting old one.");
                var deleteTemplateRequest = manager.Templates.DeleteAsync(templateIdOld.ToString()).ConfigureAwait(false);
            }

            var template   = manager.Templates.CreateAsync(model.OrderNumber, "", model.Creatives).ConfigureAwait(false);
            var templateId = template.GetAwaiter().GetResult().Id;

            LogHelper.AddLog(db, LogType.MailChimp, model.OrderNumber, "Template creatives created successfully.");
            return(templateId);
        }
Exemple #18
0
        private static string CreateCampignWithContent(CreativeVm model)
        {
            IMailChimpManager manager = new MailChimpManager();
            //AddLog(db, model.OrderNumber, "Creating campaign with contents");
            var campaign = manager.Campaigns.AddAsync(new MailChimp.Net.Models.Campaign
            {
                Settings = new Setting
                {
                    ReplyTo     = "*****@*****.**",
                    Title       = model.SubjectLine,
                    FromName    = "Josh Silver",
                    SubjectLine = model.SubjectLine,
                },
                Type = CampaignType.Regular,
            }).ConfigureAwait(false);

            var campaignId = campaign.GetAwaiter().GetResult().Id;

            var content = new ContentRequest
            {
                //PlainText = model.Creatives,
                Html = model.Creatives,
            };

            manager.Content.AddOrUpdateAsync(campaignId, content);
            return(campaignId);
        }
Exemple #19
0
        public void UpdateMember_Successful()
        {
            //  Arrange
            MailChimpManager mc    = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult       lists = mc.GetLists();
            EmailParameter   email = new EmailParameter()
            {
                Email = "*****@*****.**"
            };
            var            listId              = lists.Data[0].Id;
            MyMergeVar     mergeVar            = new MyMergeVar();
            EmailParameter subscriptionResults = mc.Subscribe(listId, email, mergeVar, "html", false, true);

            //  Act
            mergeVar.FirstName = "some name";
            mc.UpdateMember(listId, subscriptionResults, mergeVar);

            // load
            List <EmailParameter> emails = new List <EmailParameter>();

            emails.Add(email);
            MemberInfoResult memberInfos = mc.GetMemberInfo(listId, emails);

            //  Assert
            Assert.IsTrue(memberInfos.Data[0].MemberMergeInfo.ContainsKey("FNAME"));
            Assert.AreEqual("some name", memberInfos.Data[0].MemberMergeInfo["FNAME"]);
        }
Exemple #20
0
        public void BatchUnsubscribe_Successful()
        {
            //  Arrange
            MailChimpManager mc    = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult       lists = mc.GetLists();

            List <EmailParameter> emails = new List <EmailParameter>();

            EmailParameter email1 = new EmailParameter()
            {
                Email = "*****@*****.**"
            };

            EmailParameter email2 = new EmailParameter()
            {
                Email = "*****@*****.**"
            };

            emails.Add(email1);
            emails.Add(email2);

            //  Act
            BatchUnsubscribeResult results = mc.BatchUnsubscribe(lists.Data[1].Id, emails);

            //  Assert
            Assert.IsNotNull(results);
            Assert.IsTrue(results.SuccessCount == 2);
        }
 private void SetDefaultSubscribersList(string accessToken, string dataCenter)
 {
     var mc = new MailChimpManager(accessToken, dataCenter);
     var lists = mc.GetLists();
     if (lists.Data.Any())
         _settingsManager.SetValue(_subscribersListIdPropertyName, lists.Data[0].Id);
 }
Exemple #22
0
        /// <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);
        }
Exemple #23
0
        public IHttpActionResult Subscribe(string subscribeEmail)
        {
            EmailParameter result;

            if (!string.IsNullOrEmpty(_mailingSettings.AccessToken) && !string.IsNullOrEmpty(_mailingSettings.AccessToken) && !string.IsNullOrEmpty(_mailingSettings.SubscribersListId) &&
                subscribeEmail.Contains("@") && subscribeEmail.Contains("."))
            {
                var mc = new MailChimpManager(_mailingSettings.AccessToken, _mailingSettings.DataCenter);

                //  Create the email parameter
                var email = new EmailParameter()
                {
                    Email = subscribeEmail,
                };

                result = mc.Subscribe(_mailingSettings.SubscribersListId, email);
                if (string.IsNullOrEmpty(result.EUId))
                {
                    return(BadRequest());
                }
            }
            else
            {
                return(BadRequest());
            }
            return(Ok(result));
        }
        public IActionResult CreateCampaign(string ReplyTo, string FromName, string Title, string SubjectLine)
        {
            MailChimpManager _mailChimpManager = new MailChimpManager(MailChimpService.MailSid);
            Setting          _campaignSettings = new Setting
            {
                ReplyTo     = ReplyTo,
                FromName    = FromName,
                Title       = Title,
                SubjectLine = SubjectLine,
            };
            var campaign = _mailChimpManager.Campaigns.AddAsync(new Campaign
            {
                Settings   = _campaignSettings,
                Recipients = new Recipient {
                    ListId = MailChimpService.MailListId
                },
                Type = CampaignType.Regular
            }).Result;
            var timeStr = DateTime.Now.ToString();
            var content = _mailChimpManager.Content.AddOrUpdateAsync(
                campaign.Id,
                new ContentRequest()
            {
                Template = new ContentTemplate
                {
                    Id = 248261,
                }
            }).Result;

            _mailChimpManager.Campaigns.SendAsync(campaign.Id);
            return(Json("success"));
        }
Exemple #25
0
        public async Task Test_Configuration_Key()
        {
            _mailChimpManager = new MailChimpManager();
            var lists = await _mailChimpManager.Lists.GetAsync("72dcc9fa45");

            Assert.IsNotNull(lists);
        }
        public static void SubscribeEmailAddress(string strEmail, string strPostCode, string strListId)
        {
            MailChimpManager mc    = new MailChimpManager(ConfigurationManagerHelper.AppSettings["MailChimpAPIKey"].ToString());
            EmailParameter   email = new EmailParameter()
            {
                Email = strEmail
            };

            var fields = new Dictionary <string, string>
            {
                { "PCODE", strPostCode }
            };

            //Do not use for setting the any value it will update all the records
            // mc.SetMergeVar(strListId, "PCODE", strPostCode);


            //  var response = mailChimpApiService.Subscribe("*****@*****.**", new List() { subscribeSources, couponsGained, interests }, fields, true);


            //



            EmailParameter results = mc.Subscribe(strListId, email, fields, "html", false, true);
        }
Exemple #27
0
        public void UpdateMergeVar_Successful()
        {
            //  Arrange
            MailChimpManager mc      = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult       lists   = mc.GetLists();
            MergeVarOptions  options = new MergeVarOptions()
            {
                FieldType = "url",
                HelpText  = "A url, such as https://github.com/danesparza/MailChimp.NET"
            };

            // we don't want to have existing merge vars interfere
            try { mc.DeleteMergeVar(lists.Data.First().Id, "TESTUPDVAR"); }
            catch { }
            try { mc.DeleteMergeVar(lists.Data.First().Id, "UPDATEDVAR"); }
            catch { }
            mc.AddMergeVar(lists.Data.First().Id, "TESTUPDVAR", "Test Value", options);

            // Act
            options = new MergeVarOptions()
            {
                Tag      = "UPDATEDVAR",
                HelpText = "Any url you like"
            };
            MergeVarItemResult result = mc.UpdateMergeVar(lists.Data.First().Id, "TESTUPDVAR", options);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Tag == "UPDATEDVAR");

            // Clean up
            mc.DeleteMergeVar(lists.Data.First().Id, "UPDATEDVAR");
        }
Exemple #28
0
        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);
        }
Exemple #29
0
        public async Task EventSignup(EventSignupForm input)
        {
            if (string.IsNullOrWhiteSpace(input.MailchimpGroupId))
            {
                Logger.Error <MailchimpApiController>("Unknown mailchimp group id");
                throw new Exception("Unknown mailchimp group id");
            }

            var mailChimpManager = new MailChimpManager(AppSettings.CandidContribs.MailchimpApi.Key);
            var audienceId       = AppSettings.CandidContribs.MailchimpApi.AudienceId;

            var member = new MailChimp.Net.Models.Member
            {
                EmailAddress = input.Email,
                StatusIfNew  = Status.Subscribed
            };

            if (!string.IsNullOrWhiteSpace(input.First))
            {
                member.MergeFields.Add("FNAME", input.First);
            }
            if (!string.IsNullOrWhiteSpace(input.Last))
            {
                member.MergeFields.Add("LNAME", input.Last);
            }
            // member.MergeFields.Add("COUNTRY", "Spain");
            member.Interests.Add(input.MailchimpGroupId, true);

            await mailChimpManager.Members.AddOrUpdateAsync(audienceId, member);
        }
Exemple #30
0
        public bool UnSubscribe(string email, int domainID)
        {
            tbl_Domains domain = DomainsRepository.GetByID(domainID);

            if (domain == null || !domain.DO_EnableMailChimp)
            {
                return(false);
            }

            MailChimpManager manager    = new MailChimpManager(domain.DO_MailChimpAPIKey);
            EmailParameter   emailParam = new EmailParameter()
            {
                Email = email
            };

            try
            {
                var result = manager.Unsubscribe(domain.DO_MailChimpListID, emailParam);
                return(result != null ? result.Complete : false);
            }
            catch (MailChimpAPIException e)
            {
                Log.Error(String.Format("MailChimp UnSubscribe: Subscription exception: \"{0}\" ,for \"{1}\"", e.MailChimpAPIError.Name, email), e);
            }
            return(false);
        }
        public void GetMemberActivity_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            
            ListResult lists = mc.GetLists();
            Assert.IsNotNull(lists.Data);
            Assert.IsTrue(lists.Data.Any());

            MembersResult members = mc.GetAllMembersForList(lists.Data[0].Id);
            Assert.IsNotNull(members.Data);
            Assert.IsTrue(members.Data.Any());

            List<EmailParameter> memberEmails = new List<EmailParameter>();

            foreach (MemberInfo member in members.Data)
            {
                memberEmails.Add(new EmailParameter() { Email = member.Email });
            }

            //  Act
            MemberActivityResult results = mc.GetMemberActivity(lists.Data[0].Id, memberEmails);

            //  Assert
            Assert.IsNotNull(results);
            Assert.IsTrue(results.Data.Any());
        }
Exemple #32
0
        static public void Delete(string email)
        {
            MailChimpManager manager = new MailChimpManager(SiteConfiguration.MailChimpApiKey);
            var newMember            = manager.Members.DeleteAsync(SiteConfiguration.MailChimpListID, email);

            newMember.Wait();
        }
        private async Task <IActionResult> UserSubscribe(UserContactInfoModel userContactInfoModel)
        {
            var result    = new Result <string>();
            var mailchimp = _context.ApiKey.Find(2);

            IMailChimpManager mailChimpManager = new MailChimpManager(mailchimp.ApiKey1);
            var listId = "c8326de226";
            var user   = await _context.User.FirstAsync(x => x.Id == userContactInfoModel.UserId);

            var members = await mailChimpManager.Members.GetAllAsync(listId).ConfigureAwait(false);

            var member = members.First(x => x.EmailAddress == user.Email);

            // Use the Status property if updating an existing member
            member.MergeFields.Clear();
            member.MergeFields.Add("FNAME", userContactInfoModel.FirstName);
            member.MergeFields.Add("LNAME", userContactInfoModel.LastName);
            if (userContactInfoModel.IsSubscribe == 0)
            {
                member.Status = Status.Unsubscribed;
            }
            else if (userContactInfoModel.IsSubscribe == 1)
            {
                member.Status = Status.Subscribed;
            }

            await mailChimpManager.Members.AddOrUpdateAsync(listId, member);

            return(Ok(result));
        }
Exemple #34
0
        public void CampaignCreate_Successful()
        {
            // Arrange
            MailChimpManager       mc             = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult             lists          = mc.GetLists();
            string                 listID         = lists.Data[1].Id;
            CampaignSegmentOptions segmentOptions = new CampaignSegmentOptions();

            segmentOptions.Match = "All";
            string dateListCreated = lists.Data[1].DateCreated;

            segmentOptions.Conditions = new List <CampaignSegmentCriteria>();
            segmentOptions.Conditions.Add(new CampaignSegmentCriteria {
                Field = "date", Operator = "eq", Value = dateListCreated
            });
            CampaignCreateContent content = new CampaignCreateContent();

            content.HTML = "<p>Testing</p>";
            CampaignCreateOptions options = new CampaignCreateOptions();

            options.Title     = "Testing";
            options.ListId    = listID;
            options.ToName    = "Test Name";
            options.FromEmail = "*****@*****.**";
            options.FromName  = "Testing Company Name";
            options.Subject   = "Test Subject";

            //Act
            Campaign result = mc.CreateCampaign("regular", options, content, segmentOptions, null);

            // Assert
            Assert.IsNotNull(result);
        }
Exemple #35
0
        public async Task<ActionResult> UnsubscribeUser(string listId, string email)
        {
            try
            {
                IMailChimpManager manager = new MailChimpManager(APIKEY);

                using (var db = new BePreferencesEntities())
                {
                    BEMemberList member = db.BEMemberLists.FirstOrDefault(e => e.Email == email);
                    if (member != null)
                    {
                        await this.manager.Members.DeleteAsync(listId, member.Email);
                                                
                    }

                    RemoveMemberToDatabase(member, listId);
                    
                    return RedirectToAction("Index", new { email = "*****@*****.**" });
                }
                
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
        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");
        }
Exemple #37
0
        static void CreateListAddMemberCustomMergefields(MailChimpManager mailChimp)
        {
            var list = mailChimp.AddList(new ListsInstance()
            {
                Name = "Test list (custom merge fields) " + DateTime.Now,
                Contact = new Contact()
                {
                    Company = "Test company",
                    Address1 = "675 Ponce de Leon Ave NE",
                    City = "Atlanta",
                    Country = "US",
                    State = "Georgia",
                    Zip = "GA 30308"
                },
                PermissionReminder = "You subscribed to our newsletter.",
                CampaignDefaults = new CampaignDefaults()
                {
                    FromEmail = "*****@*****.**",
                    FromName = "Freddie",
                    Subject = "Test subject",
                    Language = "en"
                },
                EmailTypeOption = false
            });
            Console.WriteLine("Created list \"{0}\", id {1}", list.Name, list.Id);

            var mergeFieldSalutation = mailChimp.AddMergeField(list.Id, new MergeFieldsInstance()
            {
                Name = "Salutation",
                Tag = "SALUTATION",
                Type = "text"
            });
            Console.WriteLine("Added merge field for salutation, id {0}", mergeFieldSalutation.MergeId);

            var mergeFieldAddress = mailChimp.AddMergeField(list.Id, new MergeFieldsInstance()
            {
                Name = "Address",
                Tag = "ADDRESS",
                Type = "address"
            });
            Console.WriteLine("Added merge field for address, id {0}", mergeFieldAddress.MergeId);

            var subscriber = new MembersInstance(string.Format("testaddress+{0}@yourdomain.com", "test"), MembersInstance.StatusEnum.Subscribed, "John", "Doe");
            subscriber.MergeFields.AddOrUpdateVar(mergeFieldSalutation.Tag, "Mr.");
            subscriber.MergeFields.AddOrUpdateVar(mergeFieldAddress.Tag, new MergeFieldsInstance.Address()
            {
                Address1 = "675 Ponce de Leon Ave NE",
                City = "Atlanta",
                Country = "US",
                State = "Georgia",
                Zip = "GA 30308"
            });
            
            // Add a customer to list
            subscriber = mailChimp.AddMember(list.Id, subscriber);

            Console.WriteLine("Member {0} added to list, id {1}", subscriber.EmailAddress, subscriber.Id);
        }
        public void GetLogins_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            List<UserLoginsResult> details = mc.GetLogins();

            //  Assert
            Assert.IsTrue(details.Any());
        }
        public void GetOrders_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            OrderListResult result = mc.GetOrders();

            //  Assert
            Assert.IsNotNull(result);
        }
        public void GetTemplates_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            TemplateListResult details = mc.GetTemplates();

            //  Assert
            Assert.IsNotNull(details);
        }
        public void GetProfile_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            UserProfile details = mc.GetUserProfile();

            //  Assert
            Assert.IsFalse(string.IsNullOrEmpty(details.AccountName));
        }
        //
        // GET: /MailingList/
        public ActionResult Index()
        {
            var defaultEvent = service.GetDefaultEvent();
            int eventid = defaultEvent.ID;
            ViewBag.Event = service.GetEvent(eventid);
            int eventYear = ViewBag.Event.StartTime.Year;

            MailChimpManager mc = new MailChimpManager(_mailchimpKey);
            List<ListInfo> mailingLists = mc.GetLists().Data.Where(l=>l.Name.Contains(eventYear.ToString())).ToList();
            return View(mailingLists);
        }
        public void GetFolders_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            List<FolderListResult> details = mc.GetFolders("campaign");

            //  Assert
            Assert.IsNotNull(details);
        }
        public void GetCampaigns_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            CampaignListResult details = mc.GetCampaigns();

            //  Assert
            Assert.IsNotNull(details.Data);
        }
        public void GetGalleries_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            GalleryListResult result = mc.GetGalleries("test-api");

            //  Assert
            Assert.IsNotNull(result);
        }
        public void GetChimpChatter_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            List<ChimpChatterMessage> details = mc.GetChimpChatter();

            //  Assert
            Debug.WriteLine(details.Count);
        }
        public void Ping_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            PingMessage details = mc.Ping();

            //  Assert
            Assert.AreEqual<string>("Everything's Chimpy!", details.Message);
        }
        public void GalleryFolderRemoveAllFilesFrom_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            int testFolderId = 3141; /* Update with your folderId */

            //  Act
            bool result = mc.GalleryFolderRemoveAllFilesFrom(testFolderId);

            //  Assert
            Assert.IsTrue(result);
        }
        public void DeleteOrder_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            CompleteResult result = mc.DeleteOrder("abcde", "12345");

            //  Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Complete);
        }
        public void AddFolder_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            FolderAddResult details = mc.AddFolder("TestFolder", "campaign");

            //  Assert
            Assert.IsNotNull(details);
            Assert.AreNotEqual<int>(0, details.NewFolderId);
        }
Exemple #51
0
        public void GetAbuseReport_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult lists = mc.GetLists();

            //  Act
            AbuseResult details = mc.GetListAbuseReports(lists.Data[0].Id);

            //  Assert
            Assert.IsNotNull(details.Data);
        }
        public void GetAccountDetails_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            AccountDetails details = mc.GetAccountDetails();

            //  Assert
            Assert.IsNotNull(details.UserId);
            Assert.IsNotNull(details.ContactInfo.FirstName);
        }
        public void GalleryFolderAdd_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);

            //  Act
            AddGalleryFolderResult result = mc.GalleryFolderAdd("test-api");

            //  Assert
            Assert.IsNotNull(result);
            Assert.IsTrue(result.Id > 0);
        }
        public void GetCampaignContent_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            string campaignId = "yourcampaignidhere";

            //  Act
            CampaignContent details = mc.GetCampaignContent(campaignId);

            //  Assert
            Assert.IsFalse(string.IsNullOrWhiteSpace(details.Html));
        }
        public void ReplicateCampaign_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            CampaignListResult cl = mc.GetCampaigns();
            string campaignId = cl.Data[0].Id;

            //  Act
            Campaign details = mc.ReplicateCampaign(campaignId);

            //  Assert
            Assert.IsNotNull(details);
        }
        public void DeleteFolder_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            int testFolderId = 42; /* Update with your folderId */

            //  Act
            FolderActionResult details = mc.DeleteFolder(testFolderId, "campaign");

            //  Assert
            Assert.IsNotNull(details);
            Assert.IsTrue(details.Complete);
        }
Exemple #57
0
        public void StaticSegment_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult lists = mc.GetLists();
           

            //  Act
            List<StaticSegment> results = mc.GetStaticSegmentsFromList(lists.Data[1].Id);

            //  Assert
            Assert.IsNotNull(results);
        }
        public void GalleryFolderAddFileTo_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            int testFolderId = 3145; /* Update with your folderId */
            int testFileId = 905; /* Update with your fileId */

            //  Act
            bool result = mc.GalleryFolderAddFileTo(testFileId, testFolderId);

            //  Assert
            Assert.IsTrue(result);
        }
Exemple #59
0
        public void GetListActivity_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult lists = mc.GetLists();

            //  Act
            List<ListActivity> results = mc.GetListActivity(lists.Data[1].Id);

            //  Assert
            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
        }
Exemple #60
0
        public void GetListInterestGroupings_Successful()
        {
            //  Arrange
            MailChimpManager mc = new MailChimpManager("efb48a02f2f56120e2f3f6e2fef71803-us6");
            ListResult lists = mc.GetLists(new ListFilter(){ListName = "TestAPIGetInterestGroup"});
            Assert.IsNotNull(lists);
            Assert.IsTrue(lists.Data.Any());
            //  Act
            List<InterestGrouping> results = mc.GetListInterestGroupings(lists.Data.FirstOrDefault().Id);

            //  Assert
            Assert.IsNotNull(results);
            Assert.IsTrue(results.Any());
        }