// Remember that retunrs only 30 suppliers max! public static List <StructAnaFornitore> Search_Supplier(EleFornitori_WSClient client, StructLogin loginCredentials, StructParamRicFornIn parameters = null, string showSuspended = "N", string searchType = "E") { if (parameters == null) { parameters = new StructParamRicFornIn { codFornitore12 = "3" }; } parameters.visualSospesi = showSuspended; var supplier_list = new List <StructAnaFornitore>(); var search = new StructRicFornitoriIn { ILogin = loginCredentials, paramRicFornIn = parameters, tipoRicerca = searchType }; try { var supplier_retrived = client.ricerca(search); switch (supplier_retrived.risultatoCompleto) { case "E": { return(supplier_list); } case "N": { return(supplier_list); } default: { foreach (StructAnaFornitore supplier in supplier_retrived.eleFornitori) { supplier_list.Add(supplier); } return(supplier_list); } } } catch (Exception ex) { Console.WriteLine("ERROR - " + ex); return(supplier_list); } }
// 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); }
// 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); }
// Get Customer Details async public static async Task <StructAnaContattoOut> GetCustomerDetailsAsync(WebServicesCRMClient client, StructLogin loginCredentials, string key, string cf, string vatn, string source_type, string userIdSiap) { StructAzioni AzioniY = new StructAzioni { gestioneAzioni = "Y" }; StructKeyAnaContatto search = new StructKeyAnaContatto { chiave = key, codFiscale = cf, partitaIva = vatn, tipoFonte = source_type, userIdSiap = userIdSiap }; StructAnaContattoOut contact_details = await client.interrogazioneAnagraficaContattoAsync(loginCredentials, search, AzioniY); return(contact_details); }
// Returns a customer list public static List <StructAnaCliente> Get_Customer_List(EleClienti_WSClient client, StructLogin loginCredentials, StructParamRicCliIn parameters = null, string searchType = "E") { if (parameters == null) { parameters = new StructParamRicCliIn { codCliente12 = "20" }; } var customer_list = new List <StructAnaCliente>(); var search = new StructRicClientiIn { ILogin = loginCredentials, paramRicCliIn = parameters, tipoRicerca = searchType }; try { var customers_retrived = client.ricerca(search); switch (customers_retrived.risultatoCompleto) { case "E": { return(customer_list); } case "N": { return(customer_list); } default: { foreach (StructAnaCliente customer in customers_retrived.eleClienti) { customer_list.Add(customer); } return(customer_list); } } } catch (Exception ex) { Console.WriteLine("ERROR! - " + ex); return(customer_list); } }
public static List <StructAnaFornitoreOut> Get_All_Suppliers(WebServicesFornitoreClient client, StructLogin loginCredentials) { //0 30 1 1 ITALIA //0 30 1 2 ESTERO //0 30 1 3 FORNITORI CDC //0 30 2 1 TOUR OPERATOR //0 30 2 2 COMPAGNIE AEREE //0 30 2 3 HOTEL //0 30 2 4 AGENZIE DI VIAGGIO //0 30 2 5 ALTRI CORRISPONDENTI //0 30 2 6 FOR CORR DI APP var supplier_list = new List <StructAnaFornitoreOut>(); var supplier_retrived = new StructAnaFornitoreOut { esito = new StructEsito { stato = "OK", } }; int conto = 1; int sottoconto = 1; bool conto_increased = false; bool sottoconto_increased = false; RESTART: var suppliers_to_add = Loop_over_Supplier_Code(client, loginCredentials, sottoconto, conto); // Add found suppliers, increase sottoconto and start again if (suppliers_to_add.Count() > 0) { foreach (StructAnaFornitoreOut r in suppliers_to_add) { supplier_list.Add(r); } sottoconto++; sottoconto_increased = true; goto RESTART; } // If no suppliers are found... else if (suppliers_to_add.Count() == 0) { // if sottoconto has been increased and no suppliers are found: increase conto, set sottoconto to 1 and start again if (sottoconto_increased == true & conto_increased == false) { sottoconto = 1; conto++; conto_increased = true; goto RESTART; } else { return(supplier_list); } } return(supplier_list); }
public static List <StructAnaFornitoreOut> Loop_over_Supplier_Code(WebServicesFornitoreClient client, StructLogin loginCredentials, int sottoconto, int conto, string mastro = "30") { var supplier_list = new List <StructAnaFornitoreOut>(); int KO_Count = 0; int codice = 0; string codFornitore = Generate_Supplier_Code_String(codice, sottoconto, conto); var search = new StructAnaFornitoreIn { IAnaFornitore = new StructAnaFornitore { codice = codFornitore }, IAzione = "C", //vModRicerca = new string[] { "COD_FIS","PAR_IVA","ALT_SIS" } }; while (KO_Count < 10) { var supplier_retrived = client.gestioneAnagraficaFornitore(loginCredentials, search); if (supplier_retrived.esito.stato == "KO") { KO_Count++; } else { codice = codice + 1; supplier_list.Add(supplier_retrived); Console.WriteLine(codFornitore + " - Status: " + supplier_retrived.esito.stato); codFornitore = Generate_Supplier_Code_String(codice, sottoconto, conto); KO_Count = 0; search.IAnaFornitore.codice = codFornitore; } } return(supplier_list); }