示例#1
0
        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 { }
            });
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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;
        }
示例#4
0
        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);
        }
示例#5
0
        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;
            }
        }