Move subscribers between lists with perceptive mcapi

Nov 17, 2014 at 7:09 PM
I am developing a integration between asp.net and mailchimp, using perceptive i did all code, create new campaigns, add subscribers,etc. Now i need some help to move subscribers between lists. I didn't find in perceptive documentation this question, someone can help me? Thank you.
Dec 3, 2014 at 5:59 PM
Well i figure out how to do that, if anyone have the same problem he is my code:

public static void AddNewUserToListMailChimp(Despachante usuario)
    {
        String[] pessoa = usuario.Nome.Split(' ');
        List<Despachante> lstDespachante = new EnvioEmailsCampanhaService().GetTipoUsuarioCadastradoEnvio(usuario.IdUsuario);

        foreach (var item in lstDespachante)
        {
            CavaleiroXEnvio envio = new CavaleiroXEnvio();
            envio.IdUsuario = item.IdUsuario;
            envio.DataEnvio = DateTime.Now;
            envio.Enviado = (int)StatusEnvioMalaDiretEnum.Enviado;
            string[] group = new string[2];
            switch (item.IdTipoUsuario)
            {
                case (int)TipoPapelEnum.Cavaleiro:
                    if (item.DataAnuidade != null)
                    {
                        envio.IdList = ConfigurationManager.AppSettings["CAVALEIRO"];
                        group[0] = "Cavaleiros";
                        group[1] = "Cavaleiro";

                    }
                    else
                    {
                        group[0] = "Cavaleiros";
                        group[1] = "Cavaleiro";

                        envio.IdList = ConfigurationManager.AppSettings["CAVALEIROSEMANUIDADE"];
                    }
                    break;
                case (int)TipoPapelEnum.Proprietario:
                    envio.IdList = ConfigurationManager.AppSettings["PROPRIETARIO"];
                    group[0] = "Proprietários";
                    group[1] = "Proprietário";

                    break;
                case (int)TipoPapelEnum.Federacao:
                    envio.IdList = ConfigurationManager.AppSettings["FEDERACAO"];
                    group[0] = "Federações";
                    group[1] = "Federação";

                    break;
                case (int)TipoPapelEnum.Despachante:
                    envio.IdList = ConfigurationManager.AppSettings["DESPACHANTE"];
                    group[0] = "Despachantes";
                    group[1] = "Despachante";

                    break;
                default:
                    break;
            }


            listSubscribeOutput ResultadoEnvio = InserirUsuariosListaMailchimp(pessoa, usuario.Email, envio.IdList, group);

            if (ResultadoEnvio.result)
            {
                if (!new EnvioEmailsCampanhaService().AdicionaUsuarioEnviado(envio))
                {
                    new EnvioEmailsCampanhaService().SetMessage(FlashMessageType.Atencao, "Ocorreu um erro ao adicionar o Usuário " + usuario.Nome);

                }

            }
        }


    }

    public static listSubscribeOutput InserirUsuariosListaMailchimp(string[] pessoa, string email, string idList, string[] groupInfo)
    {
        listSubscribeParms subscribersParameters = new listSubscribeParms
        {
            apikey = ConfigurationManager.AppSettings["APIKEYMAILCHIMP"],
            id = ConfigurationManager.AppSettings["CBHLISTA"],
            email_address = email,
            merge_vars = new Dictionary<string, object>() { { "FNAME", pessoa[0] }, { "LNAME", pessoa[1] } },
            send_welcome = false,
            update_existing = true
        };
        List<interestGroupings> groupings = new List<interestGroupings>();
        interestGroupings interestGroup = new interestGroupings { id = idList.ConvertToIntDef(0), name = groupInfo[0], groups = new List<string> { groupInfo[1] } };
        groupings.Add(interestGroup);
        subscribersParameters.merge_vars = new Dictionary<string, object>() { { "FNAME", pessoa[0] }, { "LNAME", pessoa[1] }, { "groupings", groupings } };
        return new listSubscribe().Execute(new listSubscribeInput(subscribersParameters));
    }