/// <summary>
        /// Batches the unsubscribe.
        /// </summary>
        /// <param name="recordList">The records</param>
        public virtual listBatchUnsubscribeOutput BatchUnsubscribe(IEnumerable<MailChimpEventQueueRecord> recordList)
        {
            if (String.IsNullOrEmpty(_mailChimpSettings.DefaultListId))
                throw new ArgumentException("MailChimp list is not specified");

            var input = new listBatchUnsubscribeInput();
            //any directive overrides
            input.api_Validate = true;
            input.api_AccessType = EnumValues.AccessType.Serial;
            input.api_OutputType = EnumValues.OutputType.JSON;
            //method parameters
            input.parms.apikey = _mailChimpSettings.ApiKey;
            input.parms.id = _mailChimpSettings.DefaultListId;

            //batch the emails
            var batch = recordList.Select(sub => sub.Email).ToList();

            input.parms.emails = batch;

            //execution
            var cmd = new listBatchUnsubscribe(input);

            listBatchUnsubscribeOutput listSubscribeOutput = cmd.Execute();
            return listSubscribeOutput;
        }
        /// <summary>
        /// Batches the unsubscribe.
        /// </summary>
        /// <param name="recordList">The records</param>
        public virtual listBatchUnsubscribeOutput BatchUnsubscribe(IEnumerable <MailChimpEventQueueRecord> recordList)
        {
            if (String.IsNullOrEmpty(_mailChimpSettings.DefaultListId))
            {
                throw new ArgumentException("MailChimp list is not specified");
            }

            var input = new listBatchUnsubscribeInput();

            //any directive overrides
            input.api_Validate   = true;
            input.api_AccessType = EnumValues.AccessType.Serial;
            input.api_OutputType = EnumValues.OutputType.JSON;
            //method parameters
            input.parms.apikey = _mailChimpSettings.ApiKey;
            input.parms.id     = _mailChimpSettings.DefaultListId;

            //batch the emails
            var batch = recordList.Select(sub => sub.Email).ToList();

            input.parms.emails = batch;

            //execution
            var cmd = new listBatchUnsubscribe(input);

            listBatchUnsubscribeOutput listSubscribeOutput = cmd.Execute();

            return(listSubscribeOutput);
        }
Exemple #3
0
        /// <summary>
        /// Gets the list batch unsubscribe input.
        /// </summary>
        /// <param name="apikey">The apikey.</param>
        /// <param name="mailChimpListId">The mail chimp list id.</param>
        /// <returns></returns>
        private static listBatchUnsubscribeInput GetListBatchUnsubscribeInput(string apikey, string mailChimpListId)
        {
            var listBatchUnsubscribeInput = new listBatchUnsubscribeInput
            {
                api_Validate   = true,
                api_AccessType = EnumValues.AccessType.Serial,
                api_OutputType = EnumValues.OutputType.JSON,
                parms          =
                {
                    apikey = apikey,
                    id     = mailChimpListId,
                    //todo:check the requirement
                    delete_member = true,
                    send_goodbye  = true,
                    send_notify   = false
                }
            };

            return(listBatchUnsubscribeInput);
        }
 private listBatchUnsubscribeOutput listBatchUnSubscribe_method(string apikey, string id, List<string> EMails)
 {
     listBatchUnsubscribeInput input = new listBatchUnsubscribeInput();
     input.parms.apikey = apikey;
     input.parms.delete_member = true;
     input.parms.emails = EMails;
     input.parms.id = id;
     input.parms.send_goodbye = false;
     input.parms.send_notify = false;
     listBatchUnsubscribe cmd_Unsubscribe = new listBatchUnsubscribe(input);
     listBatchUnsubscribeOutput output = cmd_Unsubscribe.Execute();
     return output;
 }