Example #1
0
    public static int ListsUnsubscribe(SqlString apikey, SqlString list_id, SqlString email, SqlString euid, SqlString leid, SqlBoolean delete_member, SqlBoolean send_goodbye, SqlBoolean send_notify)
    {
        try
        {
            MailChimpManager mc = new MailChimpManager(apikey.ToString());

            EmailParameter emailParam = new EmailParameter
            {
                Email = email.ToString(),
                EUId  = euid.ToString(),
                LEId  = leid.ToString()
            };

            UnsubscribeResult result = mc.Unsubscribe(list_id.ToString(), emailParam, delete_member.IsTrue, send_goodbye.IsTrue, send_notify.IsTrue);

            SqlDataRecord record = new SqlDataRecord(CompleteResultsMetaData);
            record.SetBoolean(0, result.Complete);

            SqlContext.Pipe.Send(record);
        }
        catch (Exception ex)
        {
            SqlContext.Pipe.Send(ex.Message);
            return(1);
        }
        return(0);
    }
Example #2
0
    public static int ListsSubscribe(SqlString apikey, SqlString list_id, SqlString email, SqlString euid, SqlString leid, SqlString email_type, SqlBoolean double_optin, SqlBoolean update_existing, SqlBoolean send_welcome)
    {
        try
        {
            MailChimpManager mc = new MailChimpManager(apikey.ToString());

            EmailParameter emailParam = new EmailParameter
            {
                Email = email.ToString(),
                EUId  = euid.ToString(),
                LEId  = leid.ToString()
            };

            EmailParameter result = mc.Subscribe(list_id.ToString(), emailParam, null, email_type.ToString(),
                                                 double_optin.IsTrue, update_existing.IsTrue, true, send_welcome.IsTrue);

            SqlDataRecord record = new SqlDataRecord(EmailParameterResultsMetaData);
            record.SetString(0, result.Email);
            record.SetString(1, result.EUId);
            record.SetString(2, result.LEId);

            SqlContext.Pipe.Send(record);
        }
        catch (Exception ex)
        {
            SqlContext.Pipe.Send(ex.Message);
            return(1);
        }
        return(0);
    }
Example #3
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);
        }
Example #4
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"]);
        }
Example #5
0
        /*
         * Copy Of Dealers Invited To My.Paoli.Com (Dev-Test)
         * Dealer List (Test)
         * Sales Rep List (Test)
         */
        private static void AddEmailAddress(string emailAddress, string listConfig, Dictionary <string, string> map)
        {
            var lists = ConfigurationManager.AppSettings[listConfig].ToString();

            if (string.IsNullOrEmpty(lists))
            {
                return;
            }

            try
            {
                MailChimpManager mc = new MailChimpManager(ConfigurationManager.AppSettings["MailChimpApiKey"]);

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

                var details = new MergeVar();
                foreach (var item in map)
                {
                    details.Add(item.Key, item.Value);
                }

                foreach (var listId in lists.Split(',').Select(s => s.Trim()))
                {
                    EmailParameter results = mc.Subscribe(listId, email, doubleOptIn: false, mergeVars: details);
                }
            }
            catch
            {
            }
        }
        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);
        }
Example #7
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);
        }
Example #8
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);
        }
Example #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);
        }
Example #10
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);
        }
Example #11
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));
        }
Example #12
0
        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 SetsTheEmail(NonEmptyString emailString)
            {
                var email = Email.From(emailString.Get);

                ViewModel.Prepare(EmailParameter.With(email));

                ViewModel.Email.Value.Should().Be(email);
            }
Example #14
0
 public static bool Send(EmailParameter parameter)
 {
     try
     {
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Example #15
0
        private bool SubscribeToList(string email, string listId)
        {
            var emailParam = new EmailParameter()
            {
                Email = email
            };

            EmailParameter results = MailChimpManager.Subscribe(listId, emailParam);

            return(!string.IsNullOrWhiteSpace(results.EUId));
        }
Example #16
0
        public void SubscribeWithGroupSelection_Successful()
        {
            //  Arrange
            MailChimpManager mc    = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult       lists = mc.GetLists();
            EmailParameter   email = new EmailParameter()
            {
                Email = "*****@*****.**"
            };

            // find a list with interest groups...
            string strListID    = null;
            int    nGroupingID  = 0;
            string strGroupName = null;

            foreach (ListInfo li in lists.Data)
            {
                List <InterestGrouping> interests = mc.GetListInterestGroupings(li.Id);
                if (interests != null)
                {
                    if (interests.Count > 0)
                    {
                        if (interests[0].GroupNames.Count > 0)
                        {
                            strListID    = li.Id;
                            nGroupingID  = interests[0].Id;
                            strGroupName = interests[0].GroupNames[0].Name;
                            break;
                        }
                    }
                }
            }
            Assert.IsNotNull(strListID, "no lists found in this account with groupings / group names");
            Assert.AreNotEqual(0, nGroupingID);
            Assert.IsNotNull(strGroupName);

            MyMergeVar mvso = new MyMergeVar();

            mvso.Groupings = new List <Grouping>();
            mvso.Groupings.Add(new Grouping());
            mvso.Groupings[0].Id         = nGroupingID;
            mvso.Groupings[0].GroupNames = new List <string>();
            mvso.Groupings[0].GroupNames.Add(strGroupName);
            mvso.FirstName = "Testy";
            mvso.LastName  = "Testerson";

            //  Act
            EmailParameter results = mc.Subscribe(strListID, email, mvso);

            //  Assert
            Assert.IsNotNull(results);
            Assert.IsTrue(!string.IsNullOrEmpty(results.LEId));
        }
Example #17
0
        /// <summary>
        /// Retrieve minimal List data for all lists a member is subscribed to.
        /// </summary>
        /// <param name="emailParam">An object a with one fo the following keys: email, euid, leid. Failing to provide anything will produce an error relating to the email address</param>
        /// <returns></returns>
        public List <ListForEmail> GetListsForEmail(EmailParameter emailParam)
        {
            //  Our api action:
            string apiAction = "helper/lists-for-email";

            //  Create our arguments object:
            object args = new
            {
                apikey = this.APIKey,
                email  = emailParam
            };

            //  Make the call:
            return(MakeAPICall <List <ListForEmail> >(apiAction, args));
        }
Example #18
0
        public static EmailParameter CreateEmailParameterDefault(List <string> emails, string mailFrom, string nameFrom,
                                                                 string body, string title, List <string> attachments = null)
        {
            EmailParameter emailParameter = new EmailParameter
            {
                Emails      = emails,
                Attachments = attachments,
                MailFrom    = mailFrom,
                NameFrom    = nameFrom,
                Body        = body,
                Title       = title
            };

            return(emailParameter);
        }
Example #19
0
        private async Task forgotPassword()
        {
            if (isLoadingSubject.Value)
            {
                return;
            }

            var emailParameter = EmailParameter.With(emailSubject.Value);

            emailParameter = await Navigate <ForgotPasswordViewModel, EmailParameter, EmailParameter>(emailParameter);

            if (emailParameter != null)
            {
                emailSubject.OnNext(emailParameter.Email);
            }
        }
Example #20
0
        public bool Subscribe(ONETUGMember member)
        {
            MailChimpManager mc          = new MailChimpManager(_mailchimpKey);
            MyMergeVar       myMergeVars = new MyMergeVar();

            myMergeVars.FirstName = member.FirstName;
            myMergeVars.LastName  = member.LastName;          //  Create the email parameter
            EmailParameter email = new EmailParameter()
            {
                Email = member.EmailAddress
            };

            EmailParameter results = mc.Subscribe(_mailchimpGroupId, email, myMergeVars);

            return(string.IsNullOrEmpty(results.LEId));
        }
        public bool RegisterRecipient(string emailAddress)
        {
            var mailChimpApiKey = ConfigurationManager.AppSettings["MailChimpApiKey"];
            var mailChimpListId = ConfigurationManager.AppSettings["MailChimpListId"];

            var mc = new MailChimpManager(mailChimpApiKey);

            var emailParameter = new EmailParameter()
            {
                Email = emailAddress
            };

            var results = mc.Subscribe(mailChimpListId, emailParameter);

            return(true);
        }
Example #22
0
        // POST api/mailchimp
        public string Post(Subscriber subscriber)
        {
            MailChimpManager mc          = new MailChimpManager(_mailchimpKey);
            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(results.LEId);
        }
Example #23
0
        public void AddStaticSegmentMembers_Successful()
        {
            MailChimpManager           mc       = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult                 lists    = mc.GetLists();
            List <StaticSegmentResult> segments = mc.GetStaticSegmentsForList(lists.Data[1].Id);
            EmailParameter             email1   = new EmailParameter()
            {
                Email = "*****@*****.**"
            };
            List <EmailParameter> emails = new List <EmailParameter>();

            emails.Add(email1);
            StaticSegmentMembersAddResult result = mc.AddStaticSegmentMembers(lists.Data[1].Id, segments[0].StaticSegmentId, emails);

            Assert.IsTrue(result.successCount == 1);
        }
Example #24
0
        public bool SignupNewsletter(string name, string email)
        {
            string newsLetterIdKeyName;

            switch (Thread.CurrentThread.CurrentUICulture.LCID)
            {
            default:
                newsLetterIdKeyName = "NewsletterListId";
                break;
            }

            try
            {
                MailChimpManager mc = new MailChimpManager(WebConfigurationManager.AppSettings["MailChimpApiKey"]);

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

                NameMergeVars nameVars = new NameMergeVars();

                string[] nameParts = name.Trim().Split(' ');
                nameVars.FirstName = nameParts.Length > 1 ? nameParts[0] : name;
                if (nameParts.Length > 1 && nameParts[1].Length > 0)
                {
                    nameVars.LastName = nameParts[1];
                }

                EmailParameter results = mc.Subscribe(WebConfigurationManager.AppSettings[newsLetterIdKeyName], mailChimpEmail, nameVars);

                if (string.IsNullOrWhiteSpace(results.EUId))
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                // log the exception
                throw ex;
            }
        }
Example #25
0
        private async Task forgotPassword()
        {
            if (IsLoading)
            {
                return;
            }

            var emailParameter = EmailParameter.With(Email);

            emailParameter = await navigationService
                             .Navigate <ForgotPasswordViewModel, EmailParameter, EmailParameter>(emailParameter);

            if (emailParameter != null)
            {
                Email = emailParameter.Email;
            }
        }
Example #26
0
        public void Unsubscribe_Successful()
        {
            //  Arrange
            MailChimpManager mc    = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult       lists = mc.GetLists();
            EmailParameter   email = new EmailParameter()
            {
                Email = "*****@*****.**"
            };

            //  Act
            UnsubscribeResult results = mc.Unsubscribe(lists.Data[1].Id, email);

            //  Assert
            Assert.IsNotNull(results);
            Assert.IsTrue(results.Complete);
        }
Example #27
0
        public void Subscribe_Successful()
        {
            //  Arrange
            MailChimpManager mc    = new MailChimpManager(TestGlobal.Test_APIKey);
            ListResult       lists = mc.GetLists();
            EmailParameter   email = new EmailParameter()
            {
                Email = "*****@*****.**"
            };

            //  Act
            EmailParameter results = mc.Subscribe(lists.Data[1].Id, email);

            //  Assert
            Assert.IsNotNull(results);
            Assert.IsTrue(!string.IsNullOrEmpty(results.LEId));
        }
Example #28
0
    public static void SubscribeUserToMailChimp(string emailId, string userName)
    {
        string apiKey = ConfigurationManager.AppSettings["MailchimpAPIKey"];

        MailChimp.Lists.MergeVar myMergeVars = new MergeVar();
        myMergeVars.Add("FNAME", userName);
        //myMergeVars.Add("LNAME", "Testerson");

        MailChimpManager mc = new MailChimpManager(apiKey);

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

        EmailParameter results = mc.Subscribe("5bea4adf5a", email, myMergeVars, "html", false, true, true, false);
    }
Example #29
0
        /// <summary>
        /// Unsubscribe the given email address from the list
        /// </summary>
        /// <param name="listId">the list id to connect to (can be gathered using GetLists())</param>
        /// <param name="emailParam">An object a with one fo the following keys: email, euid, leid. Failing to provide anything will produce an error relating to the email address</param>
        /// <param name="deleteMember">optional - flag to completely delete the member from your list instead of just unsubscribing, default to false</param>
        /// <param name="sendGoodbye">optional - flag to send the goodbye email to the email address, defaults to true</param>
        /// <param name="sendNotify">optional - flag to send the unsubscribe notification email to the address defined in the list email notification settings, defaults to true</param>
        /// <returns></returns>
        public UnsubscribeResult Unsubscribe(string listId, EmailParameter emailParam, bool deleteMember = false, bool sendGoodbye = true, bool sendNotify = true)
        {
            //  Our api action:
            string apiAction = "lists/unsubscribe";

            //  Create our arguments object:
            object args = new
            {
                apikey        = this.APIKey,
                id            = listId,
                email         = emailParam,
                delete_member = deleteMember,
                send_goodbye  = sendGoodbye,
                send_notify   = sendNotify
            };

            //  Make the call:
            return(MakeAPICall <UnsubscribeResult>(apiAction, args));
        }
Example #30
0
        /// <summary>
        /// Retrieve minimal data for all Campaigns a member was sent
        /// </summary>
        /// <param name="emailParam">An object a with one fo the following keys: email, euid, leid. Failing to provide anything will produce an error relating to the email address</param>
        /// <param name="filterListId">A list_id to limit the campaigns to</param>
        /// <returns>an array of structs containing campaign data for each matching campaign</returns>
        public List <CampaignForEmail> GetCampaignsForEmail(EmailParameter emailParam, string filterListId = "")
        {
            //  Our api action:
            string apiAction = "helper/campaigns-for-email";

            //  Create our arguments object:
            object args = new
            {
                apikey  = this.APIKey,
                email   = emailParam,
                options = new
                {
                    list_id = filterListId
                }
            };

            //  Make the call:
            return(MakeAPICall <List <CampaignForEmail> >(apiAction, args));
        }