// 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);
            }
        }
示例#2
0
        // 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);
        }
示例#3
0
        // 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);
        }
示例#4
0
        // 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);
        }
示例#5
0
        // 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);
            }
        }
示例#7
0
        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);
        }
示例#8
0
        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);
        }