示例#1
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);
        }
示例#2
0
        // Generate WebservicesCliente
        public static WebServicesCRMClient SiapWebServicesCRMClient()
        {
            var binding = new BasicHttpBinding()
            {
                Name                   = "SiapWebServicesCRMClient",
                MaxBufferSize          = 2147483647,
                MaxReceivedMessageSize = 2147483647,
                SendTimeout            = new TimeSpan(0, 60, 0)
            };

            var endpoint = new EndpointAddress("http://85.46.89.115/standard-atlante-plus/services/WebServicesCRM?wsdl");
            var client   = new WebServicesCRMClient(binding, endpoint);

            return(client);
        }
示例#3
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);
        }
示例#4
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);
        }
示例#5
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);
        }