// Return all Customers in a non-async way public static List <StructRisultatoRicercaAnaOut> GetCustomers(WebServicesCRMClient client, StructLogin loginCredentials, string customer_type) { List <StructRisultatoRicercaAnaOut> customers = new List <StructRisultatoRicercaAnaOut> { }; var AllCustomers = new StructRisultatiRicercaAnaOut { numTotAna = 1 }; var Find_All_Customers = new StructParamRicercaAnaCrm { soggetto = customer_type, codKeyUnitaOp = "-1", indiceIniziale = 0, indiceFinale = 2147483647, statoRecord = " " }; while (AllCustomers.numTotAna > 0) { AllCustomers = client.ricercaAnagraficaCRM(loginCredentials, Find_All_Customers); if (AllCustomers.numTotAna != 0) { foreach (StructRisultatoRicercaAnaOut customerobject in AllCustomers.risultati) { customers.Add(customerobject); } Find_All_Customers.indiceIniziale = Find_All_Customers.indiceIniziale + 30000; Find_All_Customers.indiceFinale = Find_All_Customers.indiceFinale + 30000; } } return(customers); }
// Return only one Customer in a Asyncronous way for test purposes public static async Task <List <StructRisultatoRicercaAnaOut> > TEST_GetCustomersAsync(WebServicesCRMClient client, StructLogin loginCredentials, string customer_type) { var rnd = new Random(); int customerindex = rnd.Next(0, 3000); List <StructRisultatoRicercaAnaOut> customers = new List <StructRisultatoRicercaAnaOut> { }; var AllCustomers = new StructRisultatiRicercaAnaOut { numTotAna = 1 }; var Find_All_Customers = new StructParamRicercaAnaCrm { soggetto = customer_type, codKeyUnitaOp = "-1", indiceIniziale = customerindex, indiceFinale = customerindex + 1, statoRecord = " " }; AllCustomers = await client.ricercaAnagraficaCRMAsync(loginCredentials, Find_All_Customers); if (AllCustomers.numTotAna != 0) { foreach (StructRisultatoRicercaAnaOut customerobject in AllCustomers.risultati) { customers.Add(customerobject); } } return(customers); }
// Gets the customers via base64 string - honestly it's not worth it if you ask me... public static List <CustomerExportObject> Export_Customers_Base64(WebServicesCRMClient client, StructLogin loginCredentials, string customer_type) { var customers_to_return = new List <CustomerExportObject>(); var Find_All_Customers = new StructParamRicercaAnaCrm { soggetto = customer_type, codKeyUnitaOp = "-1", indiceIniziale = 0, indiceFinale = 2147483647, statoRecord = " " }; var all_customers = client.exportAnagraficheCRM(loginCredentials, Find_All_Customers); if (all_customers.esito.stato == "OK" && all_customers.numTotAna != 0) { DataSet excel; string customers_to_convert = all_customers.contentBase64; Byte[] customers_base64_converted = Convert.FromBase64String(customers_to_convert); MemoryStream ms = new MemoryStream(customers_base64_converted); using (var reader = ExcelReaderFactory.CreateReader(ms)) { var result = reader.AsDataSet(); excel = result; } DataTable excel_data = excel.Tables[0]; // Delete first 4 rows for (int i = 4; i >= 0; i--) { excel_data.Rows[i].Delete(); } excel_data.AcceptChanges(); foreach (DataRow rw in excel_data.AsEnumerable()) { var customer = new CustomerExportObject() { _Nome_ = Convert.ToString(rw[0]), _Cognome_ = Convert.ToString(rw[1]), _Ragione_Sociale_ = Convert.ToString(rw[2]), _Indirizzo_ = Convert.ToString(rw[3]), _Città_ = Convert.ToString(rw[4]), _CAP_ = Convert.ToString(rw[5]), _Provincia_ = Convert.ToString(rw[6]), _Codice_Stato_ = Convert.ToString(rw[7]), _Codice_Nazione_ = Convert.ToString(rw[8]), _Agenzia_Ditta_Privato_ = Convert.ToString(rw[9]), _Codice_Fiscale_ = Convert.ToString(rw[10]), _Partita_IVA_ = Convert.ToString(rw[11]), _Sesso_ = Convert.ToString(rw[12]), _Stato_Record_ = Convert.ToString(rw[13]), _Regione_ = Convert.ToString(rw[14]), _Categoria_ = Convert.ToString(rw[15]), _Informazioni_Aggiuntive_ = Convert.ToString(rw[16]), _Persona_Fisica_ = Convert.ToString(rw[17]), _Data_Nascita_ = Convert.ToString(rw[18]), _Luogo_Nascita_ = Convert.ToString(rw[19]), _Stato_Civile_ = Convert.ToString(rw[20]), _Codice_Professione_ = Convert.ToString(rw[21]), _Codice_Titolo_ = Convert.ToString(rw[22]), _Categoria_Merceologica_ = Convert.ToString(rw[23]), _Sottocategoria_Merceologica_ = Convert.ToString(rw[24]), _Codice_Gruppo_ = Convert.ToString(rw[25]), _Codice_Titolo_Studio_ = Convert.ToString(rw[26]), _Codice_Note_Persona_ = Convert.ToString(rw[27]), _Codice_Stato_Operativo_ = Convert.ToString(rw[28]), _Unità_Operativa_ = Convert.ToString(rw[29]), _Consenso_Privacy_Servizi_ = Convert.ToString(rw[30]), _Consenso_Privacy_Materiale_ = Convert.ToString(rw[31]), _Consenso_Privacy_Elettronica_Email_ = Convert.ToString(rw[32]), _Consenso_Privacy_Terzi_ = Convert.ToString(rw[33]), _Consenso_Privacy_Sensibili_Terzi_ = Convert.ToString(rw[34]), _Telefono_ = Convert.ToString(rw[35]), _Cellulare_ = Convert.ToString(rw[36]), _E_mail_ = Convert.ToString(rw[37]), _Soggetti_Per_Anagrafica_ = Convert.ToString(rw[38]), }; customers_to_return.Add(customer); } } return(customers_to_return); }