/**
        ** listMemberInfo method definitions
        **/
        public MCMemberInfo listMemberInfo(string listId, string email_address)
        {
            DummyMCMemberInfo tmp = this.api.listMemberInfo(this.apikey, listId, email_address);
            XmlRpcStruct      s   = (XmlRpcStruct)tmp.merges;

            MCMergeVar[] vars  = new MCMergeVar[(s).Count];
            MCMemberInfo toret = new MCMemberInfo();

            //copy everything normal over
            toret.email      = tmp.email;
            toret.email_type = tmp.email_type;
            toret.status     = tmp.status;
            toret.timestamp  = tmp.timestamp;
            int i = 0;

            foreach (string tag in s.Keys)
            {
                MCMergeVar v = new MCMergeVar();
                v.tag   = tag;
                v.val   = (string)s[tag];
                vars[i] = v;
                i++;
            }
            toret.merges = vars;
            return(toret);
        }
    public void list_batch_unsubscribe()
    {
        //  MCBatchUnsubResult listBatchUnsubscribe(string id, MCMemberInfo[] batch, bool delete_member, bool send_goodbye, bool send_notify){
            string list_id = "YOUR_LIST_ID";
            MCMemberInfo[] batch = new MCMemberInfo[2];
            batch[0].email = "*****@*****.**";

            batch[1].email = "*****@*****.**";

            MCBatchResult result = this.api.listBatchUnsubscribe(list_id, batch, false,false,false);
            Console.WriteLine("Success:" + result.success_count);
            Console.WriteLine("Errors:" + result.error_count);
            foreach(MCEmailResult item in result.errors){
                Console.WriteLine("\t [" + item.code + "] " + item.message);
                Console.WriteLine("\t\t email: " + item.row.email);
            }
    }
    public void list_batch_subscribe()
    {
        //listBatchSubscribe(string id, MCMemberInfo[] batch, bool double_optin, bool update_existing, bool replace_interests);
            string list_id = "YOUR_LIST_ID";
            MCMemberInfo[] batch = new MCMemberInfo[2];
            batch[0].email = "*****@*****.**";
            batch[0].email_type = "html";
            batch[0].merges = new MCMergeVar[3];
            batch[0].merges[0].tag = "FNAME";
            batch[0].merges[0].val = "David";
            batch[0].merges[1].tag = "LNAME";
            batch[0].merges[1].val = "Gilmour";
            batch[0].merges[2].tag = "INTERESTS";
            batch[0].merges[2].val = "Sand";

            batch[1].email = "*****@*****.**";
            batch[1].email_type = "html";
            batch[1].merges = new MCMergeVar[3];
            batch[1].merges[0].tag = "FNAME";
            batch[1].merges[0].val = "Roger";
            batch[1].merges[1].tag = "LNAME";
            batch[1].merges[1].val = "Waters";
            batch[1].merges[2].tag = "INTERESTS";
            batch[1].merges[2].val = "Water";

            MCBatchResult result = this.api.listBatchSubscribe(list_id, batch, false);
            Console.WriteLine("Success:" + result.success_count);
            Console.WriteLine("Errors:" + result.error_count);
            foreach(MCEmailResult item in result.errors){
                Console.WriteLine("\t [" + item.code + "] " + item.message);
                Console.WriteLine("\t\t email: " + item.row.email + " | " + item.row.merges[0].tag + " = " + item.row.merges[0].val);
            }
    }
Exemple #4
0
 private static string GetIdFieldFromMergeVars(MCMemberInfo info)
 {
     return info.merges.Where(mergevar => mergevar.name == IdField)
                       .Select(mergevar => mergevar.val)
                       .FirstOrDefault();
 }
 /**
  ** listMemberInfo method definitions
  **/
 public MCMemberInfo listMemberInfo(string listId, string email_address)
 {
     DummyMCMemberInfo tmp = this.api.listMemberInfo(this.apikey, listId, email_address);
     XmlRpcStruct s = (XmlRpcStruct)tmp.merges;
     MCMergeVar[] vars = new MCMergeVar[(s).Count];
     MCMemberInfo toret = new MCMemberInfo();
     //copy everything normal over
     toret.email = tmp.email;
     toret.email_type = tmp.email_type;
     toret.status = tmp.status;
     toret.timestamp = tmp.timestamp;
     int i = 0;
     foreach (string tag in s.Keys)
     {
         MCMergeVar v = new MCMergeVar();
         v.tag = tag;
         v.val = (string)s[tag];
         vars[i] = v;
         i++;
     }
     toret.merges = vars;
     return toret;
 }
        public MCBatchResult listBatchUnsubscribe(string id, MCMemberInfo[] batch, bool delete_member, bool send_goodbye, bool send_notify)
        {
            //massage the input
            XmlRpcStruct xBatch = new XmlRpcStruct();
            int i = 0;
            foreach (MCMemberInfo info in batch)
            {
                xBatch.Add(i + "", info.email);
                i++;
            }

            //make the call
            DummyMCBatchResult res = this.api.listBatchUnsubscribe(this.apikey, id, xBatch, delete_member, send_goodbye, send_notify);
            //massage the output
            MCBatchResult toret = new MCBatchResult();
            toret.success_count = res.success_count;
            toret.error_count = res.error_count;
            toret.errors = new MCEmailResult[res.errors.Length];
            i = 0;
            foreach (DummyMCEmailResult err in res.errors)
            {
                MCEmailResult tmp = new MCEmailResult();
                //copy everything normal over
                tmp.code = err.code;
                tmp.message = err.message;
                tmp.row = new MCMemberInfo();
                tmp.row.email = err.email;
                toret.errors[i] = tmp;
                i++;
            }
            return toret;
        }
 public MCBatchResult listBatchUnsubscribe(string id, MCMemberInfo[] batch, bool delete_member, bool send_goodbye)
 {
     return this.listBatchUnsubscribe(id, batch, delete_member, send_goodbye, false);
 }
 public MCBatchResult listBatchUnsubscribe(string id, MCMemberInfo[] batch, bool delete_member)
 {
     return this.listBatchUnsubscribe(id, batch, delete_member, true);
 }
 /**
  ** listBatchUnsubscribe method definitions
  **/
 public MCBatchResult listBatchUnsubscribe(string id, MCMemberInfo[] batch)
 {
     return this.listBatchUnsubscribe(id, batch, false);
 }
        public MCBatchResult listBatchSubscribe(string id, MCMemberInfo[] batch, bool double_optin, bool update_existing, bool replace_interests)
        {
            //massage the input
            XmlRpcStruct xBatch = new XmlRpcStruct();
            int i = 0;
            foreach (MCMemberInfo info in batch)
            {
                XmlRpcStruct mv = new XmlRpcStruct();
                mv.Add("EMAIL", info.email);
                mv.Add("EMAIL_TYPE", info.email_type);
                foreach (MCMergeVar var in info.merges)
                {
                    mv.Add(var.tag, var.val);
                }
                xBatch.Add(i + "", mv);
                i++;
            }

            //make the call
            DummyMCBatchResult res = this.api.listBatchSubscribe(this.apikey, id, xBatch, double_optin, update_existing, replace_interests);

            //massage the output
            MCBatchResult toret = new MCBatchResult();
            toret.success_count = res.success_count;
            toret.error_count = res.error_count;
            toret.errors = new MCEmailResult[res.errors.Length];
            i = 0;
            foreach (DummyMCEmailResult err in res.errors)
            {
                MCEmailResult tmp = new MCEmailResult();
                //copy everything normal over
                tmp.code = err.code;
                tmp.message = err.message;

                XmlRpcStruct s = (XmlRpcStruct)err.row;
                MCMemberInfo info = new MCMemberInfo();
                info.merges = new MCMergeVar[(s).Count];
                int j = 0;
                foreach (string tag in s.Keys)
                {
                    if (tag == "EMAIL")
                    {
                        info.email = (string)s[tag];
                    }
                    if (tag == "EMAIL_TYPE")
                    {
                        info.email_type = (string)s[tag];
                    }
                    info.merges[j] = new MCMergeVar();
                    info.merges[j].tag = tag;
                    info.merges[j].val = (string)s[tag];
                    j++;
                }
                tmp.row = info;
                toret.errors[i] = tmp;
                i++;
            }
            return toret;
        }
 public MCBatchResult listBatchSubscribe(string id, MCMemberInfo[] batch, bool double_optin, bool update_existing)
 {
     return this.listBatchSubscribe(id, batch, double_optin, update_existing, true);
 }
 public MCBatchResult listBatchSubscribe(string id, MCMemberInfo[] batch, bool double_optin)
 {
     return this.listBatchSubscribe(id, batch, double_optin, false);
 }
        public MCBatchResult listBatchSubscribe(string id, MCMemberInfo[] batch, bool double_optin, bool update_existing, bool replace_interests)
        {
            //massage the input
            XmlRpcStruct xBatch = new XmlRpcStruct();
            int          i      = 0;

            foreach (MCMemberInfo info in batch)
            {
                XmlRpcStruct mv = new XmlRpcStruct();
                mv.Add("EMAIL", info.email);
                mv.Add("EMAIL_TYPE", info.email_type);
                foreach (MCMergeVar var in info.merges)
                {
                    mv.Add(var.tag, var.val);
                }
                xBatch.Add(i + "", mv);
                i++;
            }

            //make the call
            DummyMCBatchResult res = this.api.listBatchSubscribe(this.apikey, id, xBatch, double_optin, update_existing, replace_interests);

            //massage the output
            MCBatchResult toret = new MCBatchResult();

            toret.success_count = res.success_count;
            toret.error_count   = res.error_count;
            toret.errors        = new MCEmailResult[res.errors.Length];
            i = 0;
            foreach (DummyMCEmailResult err in res.errors)
            {
                MCEmailResult tmp = new MCEmailResult();
                //copy everything normal over
                tmp.code    = err.code;
                tmp.message = err.message;

                XmlRpcStruct s    = (XmlRpcStruct)err.row;
                MCMemberInfo info = new MCMemberInfo();
                info.merges = new MCMergeVar[(s).Count];
                int j = 0;
                foreach (string tag in s.Keys)
                {
                    if (tag == "EMAIL")
                    {
                        info.email = (string)s[tag];
                    }
                    if (tag == "EMAIL_TYPE")
                    {
                        info.email_type = (string)s[tag];
                    }
                    info.merges[j]     = new MCMergeVar();
                    info.merges[j].tag = tag;
                    info.merges[j].val = (string)s[tag];
                    j++;
                }
                tmp.row         = info;
                toret.errors[i] = tmp;
                i++;
            }
            return(toret);
        }        //listBatchSubscribe