private cRespCreateMembersList.RootObject AgregarMiembros(RequestGeneraCampania miembros, string lista_id, string dataCenter, string apiKey) { //Llenar la Lista Recien Creada de los Miembros Funciones.csMailChimp lista = new Funciones.csMailChimp(); cRespCreateMembersList.RootObject parsed = new cRespCreateMembersList.RootObject(); cCreateMembersList.RootObject member = new cCreateMembersList.RootObject(); member = lista.ObtieneSocias(miembros); string sLista; if (member.members.Count() > 500) { Int32 iteracion; Int32 mod = member.members.Count() % 500; if (mod == 0) { iteracion = member.members.Count() / 500; } else { iteracion = (member.members.Count() / 500) + 1; } Int32 posicion = 0; for (int i = 0; i < iteracion; i++) { cCreateMembersList.RootObject memberRange = new cCreateMembersList.RootObject(); if (posicion + 500 <= member.members.Count()) { memberRange.members = member.members.GetRange(posicion, 500); } else { memberRange.members = member.members.GetRange(posicion, member.members.Count() - posicion); } memberRange.update_existing = true; sLista = lista.CreateMembersList(dataCenter, apiKey, lista_id, memberRange); posicion = posicion + 500; } } else { member.update_existing = true; sLista = lista.CreateMembersList(dataCenter, apiKey, lista_id, member); parsed = (cRespCreateMembersList.RootObject)JsonConvert.DeserializeObject(sLista, typeof(cRespCreateMembersList.RootObject)); } return(parsed); }
public ResultJson GeneraCampania(RequestGeneraCampania genera, string dataCenter, string apiKey, string usuario_alta_id) { try { // Crea Lista para la Campaña cLista.RootObject lista = CreaLista(genera, dataCenter, apiKey); // Obtiene el Id de la Lista Creada string lista_id = lista.id; // Hacer el MergeFields para Agregar los demas Campos Necesarios CreaMergeFields(dataCenter, apiKey, lista_id); // Agrega a los Miembros de la Lista Recien Creada cRespCreateMembersList.RootObject miembros = AgregarMiembros(genera, lista_id, dataCenter, apiKey); string campaign_id = string.Empty; // Crea la Campaña ó Selecciona la Campañia Pendiente sin Lista if (!string.IsNullOrEmpty(genera.nombre_campania) && string.IsNullOrEmpty(genera.campania_pendiente)) { // Se crea la Campaña cCampaign.RootObject campania = CreaCampania(genera, lista_id, dataCenter, apiKey); campaign_id = campania.id; } else { // Se asigna la Campaña a la Lista Recien Creada bool campania = AsignaCampania(genera, lista_id, apiKey); campaign_id = genera.campania_pendiente; } // Realiza la inserción en la tabla campaign InsertaCampania(genera, campaign_id, string.Empty, usuario_alta_id); // Realiza la inserción en la tabla historico_generador_campania InsertaHistoricoGeneradorCampania(genera, campaign_id, lista_id, usuario_alta_id); result.Success = true; result.Message = "Ha sido generada la campaña exitosamente"; return(result); } catch (Exception ex) { result.Success = false; result.Message = "Ocurrio un error al generar la campaña"; return(result); } }