From dc3b56964d5307d8bc5a0d7404c35e62271951fd Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 8 Feb 2019 09:50:17 +0100 Subject: [PATCH] Aggiunto tipo doc 'PR' in upload --- DataUploader/GestData.cs | 744 +++++++++++++++++++-------------------- 1 file changed, 370 insertions(+), 374 deletions(-) diff --git a/DataUploader/GestData.cs b/DataUploader/GestData.cs index a849f84..2654f7b 100644 --- a/DataUploader/GestData.cs +++ b/DataUploader/GestData.cs @@ -1,67 +1,63 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; +using NLog; +using System; using System.Configuration; using System.Data.Odbc; -using System.Configuration; -using NLog; namespace DataUploader { - public class GestData + public class GestData + { + + private static Logger logger = LogManager.GetCurrentClassLogger(); + + protected GestData() + { + setupConnString(); + } + protected OdbcConnection conn; + /// + /// configurazione stringa connesisone dati + /// + private void setupConnString() + { + conn = new OdbcConnection(); + // ho creato un DSN di sistema a nome "DB_Sigla" cui faccio riferimento (32 perché 32 bit x mia demo... ho dovuto convertire accdb in mdb...) + //string connectionString = "Dsn=DB_Sigla32;Initial Catalog=TESDOCUM;"; // Questa va su un MDB di cui esiste un DSN + //string connectionString = "Driver={Microsoft Access Driver(*.mdb, *.accdb)};DBQ=C:\\DB_SIGLA.accdb;"; + //string connectionString = "Dsn=DITTA1;Initial Catalog=TESDOCUM;"; // Questa non funziona senza una password eslpicita, anche se esiste un DSN DITTA1 con pwd salvata + //string connectionString = "Dsn=DITTA1;Uid=DB2;Pwd=ccL21x$1wow;Initial Catalog=TESDOCUM;"; // Questa funziona se esiste un DSN DITTA1 + //string connectionString = "Driver={IBM DB2 ODBC DRIVER};DataBase=DITTA1; HostName=RigaSRV02; Protocol=TCPIP;Port=50000;Uid=DB2;Pwd=ccL21x$1wow"; //questa funziona anche senza DSN esistente + string connectionString = ConfigurationManager.AppSettings["connString"]; + conn.ConnectionString = connectionString; + } + + public static GestData proc = new GestData(); + + + /// + /// restituisce un array di stringhe URL da chiamare per caricare i dati documento / cliente + /// + /// numero ultimo doc caricato (restituirà docs successivi) + /// + public string[] getNewDocsUrls(int numeroFrom) { - private static Logger logger = LogManager.GetCurrentClassLogger(); + if (ConfigurationManager.AppSettings["debugMode"] == "true") + { + logger.Info("Inizio getNewDocsUrls"); + } - protected GestData() - { - setupConnString(); - } - protected OdbcConnection conn; - /// - /// configurazione stringa connesisone dati - /// - private void setupConnString() - { - conn = new OdbcConnection(); - // ho creato un DSN di sistema a nome "DB_Sigla" cui faccio riferimento (32 perché 32 bit x mia demo... ho dovuto convertire accdb in mdb...) - //string connectionString = "Dsn=DB_Sigla32;Initial Catalog=TESDOCUM;"; // Questa va su un MDB di cui esiste un DSN - //string connectionString = "Driver={Microsoft Access Driver(*.mdb, *.accdb)};DBQ=C:\\DB_SIGLA.accdb;"; - //string connectionString = "Dsn=DITTA1;Initial Catalog=TESDOCUM;"; // Questa non funziona senza una password eslpicita, anche se esiste un DSN DITTA1 con pwd salvata - //string connectionString = "Dsn=DITTA1;Uid=DB2;Pwd=ccL21x$1wow;Initial Catalog=TESDOCUM;"; // Questa funziona se esiste un DSN DITTA1 - //string connectionString = "Driver={IBM DB2 ODBC DRIVER};DataBase=DITTA1; HostName=RigaSRV02; Protocol=TCPIP;Port=50000;Uid=DB2;Pwd=ccL21x$1wow"; //questa funziona anche senza DSN esistente - string connectionString = ConfigurationManager.AppSettings["connString"]; - conn.ConnectionString = connectionString; - } + // ipotesi: si caricano maxDocsToUpload documenti alal volta (e quindi altrettanti clienti) + int maxDocsToUpload = Convert.ToInt32(ConfigurationManager.AppSettings["maxDocsToUpload"]); + string[] answ = new string[maxDocsToUpload * 2]; // 2 stringhe, una x doc e 1 x cliente x ogni invio... + string[] rDoc = new string[20]; + string[] rCli = new string[12]; + string comandoDoc; - public static GestData proc = new GestData(); - - - /// - /// restituisce un array di stringhe URL da chiamare per caricare i dati documento / cliente - /// - /// numero ultimo doc caricato (restituirà docs successivi) - /// - public string[] getNewDocsUrls(int numeroFrom) - { - - if (ConfigurationManager.AppSettings["debugMode"] == "true") - { - logger.Info("Inizio getNewDocsUrls"); - } - - // ipotesi: si caricano maxDocsToUpload documenti alal volta (e quindi altrettanti clienti) - int maxDocsToUpload = Convert.ToInt32(ConfigurationManager.AppSettings["maxDocsToUpload"]); - string[] answ = new string[maxDocsToUpload * 2]; // 2 stringhe, una x doc e 1 x cliente x ogni invio... - string[] rDoc = new string[20]; - string[] rCli = new string[12]; - string comandoDoc; - - // qui va fatto ciclo x spazzare 1 ad 1 i documenti ed i relativi clienti - if (false) - { // query in formato ACCESS 2010 - comandoDoc = string.Format(@"SELECT TOP {0} + // qui va fatto ciclo x spazzare 1 ad 1 i documenti ed i relativi clienti + if (false) + { // query in formato ACCESS 2010 + comandoDoc = string.Format(@"SELECT TOP {0} TESDOCUM.TIPOPROTOC, TESDOCUM.NUMERO, TESDOCUM.ESERPROTOC, TESDOCUM.NUMEPROTOC, TESDOCUM.DATAPROTOC, TESDOCUM.ESERRIFERI, TESDOCUM.NUMERIFERI, TESDOCUM.TIPORIFERI, TESDOCUM.DATARIFERI, @@ -71,14 +67,14 @@ namespace DataUploader TESDOCUM.ULT_AGG, TESDOCUM.ANNOTAZION FROM TESDOCUM WHERE (CLng(TESDOCUM.NUMERO) > ({1})) - AND (TESDOCUM.TIPOPROTOC IN ('OC', 'DC')) + AND (TESDOCUM.TIPOPROTOC IN ('OC', 'DC', 'PR')) ORDER BY TESDOCUM.NUMERO ", - maxDocsToUpload, numeroFrom); - } - else - { // query in formato DB2 - comandoDoc = string.Format(@"SELECT + maxDocsToUpload, numeroFrom); + } + else + { // query in formato DB2 + comandoDoc = string.Format(@"SELECT TESDOCUM.TIPOPROTOC, TESDOCUM.NUMERO, TESDOCUM.ESERPROTOC, TESDOCUM.NUMEPROTOC, TESDOCUM.DATAPROTOC, TESDOCUM.ESERRIFERI, TESDOCUM.NUMERIFERI, TESDOCUM.TIPORIFERI, TESDOCUM.DATARIFERI, @@ -88,51 +84,51 @@ namespace DataUploader TESDOCUM.ULT_AGG, TESDOCUM.ANNOTAZION FROM TESDOCUM WHERE (INT(TESDOCUM.NUMERO) > ({1})) - AND (TESDOCUM.TIPOPROTOC IN ('OC', 'DC')) + AND (TESDOCUM.TIPOPROTOC IN ('OC', 'DC', 'PR')) ORDER BY TESDOCUM.NUMERO FETCH FIRST {0} ROWS ONLY ", - maxDocsToUpload, numeroFrom); - } - // try/catch x db e ciclo su dati... - try + maxDocsToUpload, numeroFrom); + } + // try/catch x db e ciclo su dati... + try + { + conn.Open(); + if (ConfigurationManager.AppSettings["debugMode"] == "true") + { + logger.Info("Aperta connessione ODBC"); + } + + // dati documento + int num = 0; + using (OdbcCommand com = new OdbcCommand(comandoDoc, conn)) + { + using (OdbcDataReader reader = com.ExecuteReader()) + { + while (reader.Read()) { - conn.Open(); - if (ConfigurationManager.AppSettings["debugMode"] == "true") + for (int i = 0; i < 20; i++) + { + try { - logger.Info("Aperta connessione ODBC"); + rDoc[i] = reader.GetString(i).Trim().Replace(" ", "+"); } - - // dati documento - int num = 0; - using (OdbcCommand com = new OdbcCommand(comandoDoc, conn)) + catch { - using (OdbcDataReader reader = com.ExecuteReader()) - { - while (reader.Read()) - { - for (int i = 0; i < 20; i++) - { - try - { - rDoc[i] = reader.GetString(i).Trim().Replace(" ", "+"); - } - catch - { - rDoc[i] = ""; - } - } + rDoc[i] = ""; + } + } - //if (ConfigurationManager.AppSettings["debugMode"] == "true") - //{ - // logger.Info("Completata lettura ODBC x DOC"); - //} + //if (ConfigurationManager.AppSettings["debugMode"] == "true") + //{ + // logger.Info("Completata lettura ODBC x DOC"); + //} - // il campo 12 è il cod cliente! - rCli[0] = rDoc[12]; + // il campo 12 è il cod cliente! + rCli[0] = rDoc[12]; - // cellulare e email trovati in USRCLIFO, relazionato su CODSIGLA - string comandoCli = string.Format(@"SELECT CLIFO.CODICE, CLIFO.RAGIONESOC, CLIFO.COFI, + // cellulare e email trovati in USRCLIFO, relazionato su CODSIGLA + string comandoCli = string.Format(@"SELECT CLIFO.CODICE, CLIFO.RAGIONESOC, CLIFO.COFI, CLIFO.TEL, USRCLIFO.CELNM AS CELL, CASE WHEN USRCLIFO.CELNM <> ' ' THEN 1 ELSE 0 END AS ENABLE_SMS, USRCLIFO.E_MAILL AS EMAIL, @@ -142,92 +138,92 @@ namespace DataUploader ON CLIFO.CODICE = USRCLIFO.CODSIGLA WHERE CLIFO.TIPO='C' AND CLIFO.CODICE = '{0}'", - rCli[0]); + rCli[0]); - try - { - using (OdbcCommand comCli = new OdbcCommand(comandoCli, conn)) - { - using (OdbcDataReader readerCli = comCli.ExecuteReader()) - { - while (readerCli.Read()) - { - for (int j = 0; j < 12; j++) - { - try - { - rCli[j] = readerCli.GetString(j).Trim().Replace(" ", "+"); - } - catch - { - rCli[j] = ""; - } - } - } - } - } - - //if (ConfigurationManager.AppSettings["debugMode"] == "true") - //{ - // logger.Info("Completata lettura ODBC x CLI"); - //} - - // formatto answ... prima CLI poi DOCS... - answ[num++] = createUrlCli(rCli); - answ[num++] = createUrlDoc(rDoc); - } - catch (Exception ex) - { - logger.Error("Eccezione in comandoCli{0}Comando: {1}{0}{2}", Environment.NewLine, comandoCli, ex); - } + try + { + using (OdbcCommand comCli = new OdbcCommand(comandoCli, conn)) + { + using (OdbcDataReader readerCli = comCli.ExecuteReader()) + { + while (readerCli.Read()) + { + for (int j = 0; j < 12; j++) + { + try + { + rCli[j] = readerCli.GetString(j).Trim().Replace(" ", "+"); } + catch + { + rCli[j] = ""; + } + } } + } } - } - catch (Exception ex) - { - logger.Error("Eccezione{0}Comando: {1}{0}{2}", Environment.NewLine, comandoDoc, ex); - } - finally - { - conn.Close(); - } + //if (ConfigurationManager.AppSettings["debugMode"] == "true") + //{ + // logger.Info("Completata lettura ODBC x CLI"); + //} - if (ConfigurationManager.AppSettings["debugMode"] == "true") - { - logger.Info("Chiusura connessione ODBC"); + // formatto answ... prima CLI poi DOCS... + answ[num++] = createUrlCli(rCli); + answ[num++] = createUrlDoc(rDoc); + } + catch (Exception ex) + { + logger.Error("Eccezione in comandoCli{0}Comando: {1}{0}{2}", Environment.NewLine, comandoCli, ex); + } } - - // end ciclo, resituisco tutti i records - return answ; + } } + } + catch (Exception ex) + { + logger.Error("Eccezione{0}Comando: {1}{0}{2}", Environment.NewLine, comandoDoc, ex); + } - /// - /// restituisce un array di stringhe URL da chiamare per caricare i dati documento / cliente - /// - /// numero ultimo doc caricato (restituirà docs successivi) - /// numero di doc da ricaricare (prima dell'ultimo caricato...) - /// - public string[] reloadLastDocs(int numeroFrom, int num2reload) - { + finally + { + conn.Close(); + } - if (ConfigurationManager.AppSettings["debugMode"] == "true") - { - logger.Info("Inizio getNewDocsUrls"); - } + if (ConfigurationManager.AppSettings["debugMode"] == "true") + { + logger.Info("Chiusura connessione ODBC"); + } - // ipotesi: si caricano maxDocsToUpload documenti alla volta (e quindi altrettanti clienti) - int maxDocsToUpload = num2reload + 1; - string[] answ = new string[maxDocsToUpload * 2]; // 2 stringhe, una x doc e 1 x cliente x ogni invio... - string[] rDoc = new string[20]; - string[] rCli = new string[12]; - string comandoDoc; + // end ciclo, resituisco tutti i records + return answ; + } - // qui va fatto ciclo x spazzare 1 ad 1 i documenti ed i relativi clienti - if (false) - { // query in formato ACCESS 2010 - comandoDoc = string.Format(@"SELECT TOP {0} + /// + /// restituisce un array di stringhe URL da chiamare per caricare i dati documento / cliente + /// + /// numero ultimo doc caricato (restituirà docs successivi) + /// numero di doc da ricaricare (prima dell'ultimo caricato...) + /// + public string[] reloadLastDocs(int numeroFrom, int num2reload) + { + + if (ConfigurationManager.AppSettings["debugMode"] == "true") + { + logger.Info("Inizio getNewDocsUrls"); + } + + // ipotesi: si caricano maxDocsToUpload documenti alla volta (e quindi altrettanti clienti) + int maxDocsToUpload = num2reload + 1; + string[] answ = new string[maxDocsToUpload * 2]; // 2 stringhe, una x doc e 1 x cliente x ogni invio... + string[] rDoc = new string[20]; + string[] rCli = new string[12]; + string comandoDoc; + + // qui va fatto ciclo x spazzare 1 ad 1 i documenti ed i relativi clienti + if (false) + { // query in formato ACCESS 2010 + comandoDoc = string.Format(@"SELECT TOP {0} TESDOCUM.TIPOPROTOC, TESDOCUM.NUMERO, TESDOCUM.ESERPROTOC, TESDOCUM.NUMEPROTOC, TESDOCUM.DATAPROTOC, TESDOCUM.ESERRIFERI, TESDOCUM.NUMERIFERI, TESDOCUM.TIPORIFERI, TESDOCUM.DATARIFERI, @@ -237,14 +233,14 @@ namespace DataUploader TESDOCUM.ULT_AGG, TESDOCUM.ANNOTAZION FROM TESDOCUM WHERE (CLng(TESDOCUM.NUMERO) > ({1})) - AND (TESDOCUM.TIPOPROTOC IN ('OC', 'DC')) + AND (TESDOCUM.TIPOPROTOC IN ('OC', 'DC', 'PR')) ORDER BY TESDOCUM.NUMERO ", - maxDocsToUpload, numeroFrom); - } - else - { // query in formato DB2 - comandoDoc = string.Format(@"SELECT + maxDocsToUpload, numeroFrom); + } + else + { // query in formato DB2 + comandoDoc = string.Format(@"SELECT TESDOCUM.TIPOPROTOC, TESDOCUM.NUMERO, TESDOCUM.ESERPROTOC, TESDOCUM.NUMEPROTOC, TESDOCUM.DATAPROTOC, TESDOCUM.ESERRIFERI, TESDOCUM.NUMERIFERI, TESDOCUM.TIPORIFERI, TESDOCUM.DATARIFERI, @@ -254,51 +250,51 @@ namespace DataUploader TESDOCUM.ULT_AGG, TESDOCUM.ANNOTAZION FROM TESDOCUM WHERE (INT(TESDOCUM.NUMERO) > ({1})) - AND (TESDOCUM.TIPOPROTOC IN ('OC', 'DC')) + AND (TESDOCUM.TIPOPROTOC IN ('OC', 'DC', 'PR')) ORDER BY TESDOCUM.NUMERO FETCH FIRST {0} ROWS ONLY ", - maxDocsToUpload, numeroFrom - num2reload); - } - // try/catch x db e ciclo su dati... - try + maxDocsToUpload, numeroFrom - num2reload); + } + // try/catch x db e ciclo su dati... + try + { + conn.Open(); + if (ConfigurationManager.AppSettings["debugMode"] == "true") + { + logger.Info("Aperta connessione ODBC"); + } + + // dati documento + int num = 0; + using (OdbcCommand com = new OdbcCommand(comandoDoc, conn)) + { + using (OdbcDataReader reader = com.ExecuteReader()) + { + while (reader.Read()) { - conn.Open(); - if (ConfigurationManager.AppSettings["debugMode"] == "true") + for (int i = 0; i < 20; i++) + { + try { - logger.Info("Aperta connessione ODBC"); + rDoc[i] = reader.GetString(i).Trim().Replace(" ", "+"); } - - // dati documento - int num = 0; - using (OdbcCommand com = new OdbcCommand(comandoDoc, conn)) + catch { - using (OdbcDataReader reader = com.ExecuteReader()) - { - while (reader.Read()) - { - for (int i = 0; i < 20; i++) - { - try - { - rDoc[i] = reader.GetString(i).Trim().Replace(" ", "+"); - } - catch - { - rDoc[i] = ""; - } - } + rDoc[i] = ""; + } + } - //if (ConfigurationManager.AppSettings["debugMode"] == "true") - //{ - // logger.Info("Completata lettura ODBC x DOC"); - //} + //if (ConfigurationManager.AppSettings["debugMode"] == "true") + //{ + // logger.Info("Completata lettura ODBC x DOC"); + //} - // il campo 12 è il cod cliente! - rCli[0] = rDoc[12]; + // il campo 12 è il cod cliente! + rCli[0] = rDoc[12]; - // cellulare e email trovati in USRCLIFO, relazionato su CODSIGLA - string comandoCli = string.Format(@"SELECT CLIFO.CODICE, CLIFO.RAGIONESOC, CLIFO.COFI, + // cellulare e email trovati in USRCLIFO, relazionato su CODSIGLA + string comandoCli = string.Format(@"SELECT CLIFO.CODICE, CLIFO.RAGIONESOC, CLIFO.COFI, CLIFO.TEL, USRCLIFO.CELNM AS CELL, CASE WHEN USRCLIFO.CELNM <> ' ' THEN 1 ELSE 0 END AS ENABLE_SMS, USRCLIFO.E_MAILL AS EMAIL, @@ -308,87 +304,87 @@ namespace DataUploader ON CLIFO.CODICE = USRCLIFO.CODSIGLA WHERE CLIFO.TIPO='C' AND CLIFO.CODICE = '{0}'", - rCli[0]); + rCli[0]); - try - { - using (OdbcCommand comCli = new OdbcCommand(comandoCli, conn)) - { - using (OdbcDataReader readerCli = comCli.ExecuteReader()) - { - while (readerCli.Read()) - { - for (int j = 0; j < 12; j++) - { - try - { - rCli[j] = readerCli.GetString(j).Trim().Replace(" ", "+"); - } - catch - { - rCli[j] = ""; - } - } - } - } - } - - //if (ConfigurationManager.AppSettings["debugMode"] == "true") - //{ - // logger.Info("Completata lettura ODBC x CLI"); - //} - - // formatto answ... prima CLI poi DOCS... - answ[num++] = createUrlCli(rCli); - answ[num++] = createUrlDoc(rDoc); - } - catch (Exception ex) - { - logger.Error("Eccezione in comandoCli{0}Comando: {1}{0}{2}", Environment.NewLine, comandoCli, ex); - } + try + { + using (OdbcCommand comCli = new OdbcCommand(comandoCli, conn)) + { + using (OdbcDataReader readerCli = comCli.ExecuteReader()) + { + while (readerCli.Read()) + { + for (int j = 0; j < 12; j++) + { + try + { + rCli[j] = readerCli.GetString(j).Trim().Replace(" ", "+"); } + catch + { + rCli[j] = ""; + } + } } + } } - } - catch (Exception ex) - { - logger.Error("Eccezione{0}Comando: {1}{0}{2}", Environment.NewLine, comandoDoc, ex); - } - finally - { - conn.Close(); - } + //if (ConfigurationManager.AppSettings["debugMode"] == "true") + //{ + // logger.Info("Completata lettura ODBC x CLI"); + //} - if (ConfigurationManager.AppSettings["debugMode"] == "true") - { - logger.Info("Chiusura connessione ODBC"); + // formatto answ... prima CLI poi DOCS... + answ[num++] = createUrlCli(rCli); + answ[num++] = createUrlDoc(rDoc); + } + catch (Exception ex) + { + logger.Error("Eccezione in comandoCli{0}Comando: {1}{0}{2}", Environment.NewLine, comandoCli, ex); + } } - - // end ciclo, resituisco tutti i records - return answ; + } } - /// - /// restituisce un array di stringhe URL da chiamare per caricare i dati documento / cliente - /// - /// Codice documento richiesto - /// Anno documento richiesto - /// - public string[] getDocsUrls(string CodDoc, string Anno) - { - string[] answ = new string[2]; // 2 stringhe, una x doc e 1 x cliente x ogni invio... - // per ogni record trovato compongo un record DOCS ed uno CLI - string[] rDoc = new string[20]; - string[] rCli = new string[12]; + } + catch (Exception ex) + { + logger.Error("Eccezione{0}Comando: {1}{0}{2}", Environment.NewLine, comandoDoc, ex); + } - // effettuo chaimata ODBC e recupero dati - try - { - conn.Open(); - string tipoDoc = CodDoc.Substring(0, 2); - string NumDoc = CodDoc.Replace(tipoDoc, ""); - // questa è la vera stringa SQL - string comandoDoc = string.Format(@"SELECT TESDOCUM.TIPOPROTOC, TESDOCUM.NUMERO, TESDOCUM.ESERPROTOC, + finally + { + conn.Close(); + } + + if (ConfigurationManager.AppSettings["debugMode"] == "true") + { + logger.Info("Chiusura connessione ODBC"); + } + + // end ciclo, resituisco tutti i records + return answ; + } + /// + /// restituisce un array di stringhe URL da chiamare per caricare i dati documento / cliente + /// + /// Codice documento richiesto + /// Anno documento richiesto + /// + public string[] getDocsUrls(string CodDoc, string Anno) + { + string[] answ = new string[2]; // 2 stringhe, una x doc e 1 x cliente x ogni invio... + // per ogni record trovato compongo un record DOCS ed uno CLI + string[] rDoc = new string[20]; + string[] rCli = new string[12]; + + // effettuo chaimata ODBC e recupero dati + try + { + conn.Open(); + string tipoDoc = CodDoc.Substring(0, 2); + string NumDoc = CodDoc.Replace(tipoDoc, ""); + // questa è la vera stringa SQL + string comandoDoc = string.Format(@"SELECT TESDOCUM.TIPOPROTOC, TESDOCUM.NUMERO, TESDOCUM.ESERPROTOC, TESDOCUM.NUMEPROTOC, TESDOCUM.DATAPROTOC, TESDOCUM.ESERRIFERI, TESDOCUM.NUMERIFERI, TESDOCUM.TIPORIFERI, TESDOCUM.DATARIFERI, TESDOCUM.NUMEDOCRIF, TESDOCUM.DATADOCRIF, TESDOCUM.ESERCOLLEG, @@ -399,33 +395,33 @@ namespace DataUploader WHERE TESDOCUM.TIPOPROTOC='{0}' AND TESDOCUM.NUMEPROTOC ='{1}' AND TESDOCUM.ESERPROTOC ='{2}';", - tipoDoc, NumDoc, Anno); - // dati documento - using (OdbcCommand com = new OdbcCommand(comandoDoc, conn)) + tipoDoc, NumDoc, Anno); + // dati documento + using (OdbcCommand com = new OdbcCommand(comandoDoc, conn)) + { + using (OdbcDataReader reader = com.ExecuteReader()) + { + while (reader.Read()) + { + for (int i = 0; i < 20; i++) + { + try { - using (OdbcDataReader reader = com.ExecuteReader()) - { - while (reader.Read()) - { - for (int i = 0; i < 20; i++) - { - try - { - rDoc[i] = reader.GetString(i).Trim().Replace(" ", "+"); - } - catch - { - rDoc[i] = ""; - } - } - // il campo 12 è il cod cliente! - rCli[0] = rDoc[12]; - } - } + rDoc[i] = reader.GetString(i).Trim().Replace(" ", "+"); } + catch + { + rDoc[i] = ""; + } + } + // il campo 12 è il cod cliente! + rCli[0] = rDoc[12]; + } + } + } - // cellulare e email trovati in USRCLIFO, relazionato su CODSIGLA - string comandoCli = string.Format(@"SELECT CLIFO.CODICE, CLIFO.RAGIONESOC, CLIFO.COFI, + // cellulare e email trovati in USRCLIFO, relazionato su CODSIGLA + string comandoCli = string.Format(@"SELECT CLIFO.CODICE, CLIFO.RAGIONESOC, CLIFO.COFI, CLIFO.TEL, USRCLIFO.CELNM AS CELL, CASE WHEN USRCLIFO.CELNM <> ' ' THEN 1 ELSE 0 END AS ENABLE_SMS, USRCLIFO.E_MAILL AS EMAIL, @@ -435,76 +431,76 @@ namespace DataUploader ON CLIFO.CODICE = USRCLIFO.CODSIGLA WHERE CLIFO.TIPO='C' AND CLIFO.CODICE = '{0}';", - rCli[0]); - using (OdbcCommand comCli = new OdbcCommand(comandoCli, conn)) + rCli[0]); + using (OdbcCommand comCli = new OdbcCommand(comandoCli, conn)) + { + using (OdbcDataReader readerCli = comCli.ExecuteReader()) + { + while (readerCli.Read()) + { + for (int i = 0; i < 12; i++) + { + try { - using (OdbcDataReader readerCli = comCli.ExecuteReader()) - { - while (readerCli.Read()) - { - for (int i = 0; i < 12; i++) - { - try - { - rCli[i] = readerCli.GetString(i).Trim().Replace(" ", "+"); - } - catch - { - rCli[i] = ""; - } - } - } - } + rCli[i] = readerCli.GetString(i).Trim().Replace(" ", "+"); } - // formatto answ... prima CLI poi doc... - answ[0] = createUrlCli(rCli); - answ[1] = createUrlDoc(rDoc); + catch + { + rCli[i] = ""; + } + } } - catch (Exception ex) - { - logger.Error("Eccezione{0}{1}", Environment.NewLine, ex); - } - finally - { - conn.Close(); - } - return answ; - } - /// - /// crea url formattato x upload DOC - /// - /// - /// - protected string createUrlDoc(string[] rDoc) - { - string answ = ""; - try - { - answ = string.Format(@"{0}?TIPOPROTOC={1}&NUMERO={2}&ESERPROTOC={3}&NUMEPROTOC={4}&DATAPROTOC={5}&ESERRIFERI={6}&NUMERIFERI={7}&TIPORIFERI={8}&DATARIFERI={9}&NUMEDOCRIF={10}&DATADOCRIF={11}&ESERCOLLEG={12}&CLI_FOR={13}&DESTINATAR={14}&RGSOC_DEST={15}&INDIR_DEST={16}&LOCAL_DEST={17}&CAP_DEST={18}&ULT_AGG={19}&ANNOTAZION={20}", ConfigurationManager.AppSettings["remoteDocUrl"], rDoc[0], rDoc[1], rDoc[2], rDoc[3], rDoc[4], rDoc[5], rDoc[6], rDoc[7], rDoc[8], rDoc[9], rDoc[10], rDoc[11], rDoc[12], rDoc[13], rDoc[14], rDoc[15], rDoc[16], rDoc[17], rDoc[18], rDoc[19]); - } - catch (Exception exc) - { - logger.Error("Eccezione in createUrlDoc{0}{1}", Environment.NewLine, exc); - } - return answ; - } - /// - /// crea url formattato x upload CLI - /// - /// - /// - protected string createUrlCli(string[] rCli) - { - string answ = ""; - try - { - answ = string.Format("{0}?CodCliente={1}&RagSoc={2}&CodFis={3}&Tel={4}&Cell={5}&EnableSMS={6}&Email={7}&Indir={8}&Cap={9}&Localita={10}&Prov={11}&Note={12}", ConfigurationManager.AppSettings["remoteCliUrl"], rCli[0], rCli[1], rCli[2], rCli[3], rCli[4], rCli[5], rCli[6], rCli[7], rCli[8], rCli[9], rCli[10], rCli[11]); - } - catch (Exception exc) - { - logger.Error("Eccezione in createUrlCli{0}{1}", Environment.NewLine, exc); - } - return answ; + } } + // formatto answ... prima CLI poi doc... + answ[0] = createUrlCli(rCli); + answ[1] = createUrlDoc(rDoc); + } + catch (Exception ex) + { + logger.Error("Eccezione{0}{1}", Environment.NewLine, ex); + } + finally + { + conn.Close(); + } + return answ; } + /// + /// crea url formattato x upload DOC + /// + /// + /// + protected string createUrlDoc(string[] rDoc) + { + string answ = ""; + try + { + answ = string.Format(@"{0}?TIPOPROTOC={1}&NUMERO={2}&ESERPROTOC={3}&NUMEPROTOC={4}&DATAPROTOC={5}&ESERRIFERI={6}&NUMERIFERI={7}&TIPORIFERI={8}&DATARIFERI={9}&NUMEDOCRIF={10}&DATADOCRIF={11}&ESERCOLLEG={12}&CLI_FOR={13}&DESTINATAR={14}&RGSOC_DEST={15}&INDIR_DEST={16}&LOCAL_DEST={17}&CAP_DEST={18}&ULT_AGG={19}&ANNOTAZION={20}", ConfigurationManager.AppSettings["remoteDocUrl"], rDoc[0], rDoc[1], rDoc[2], rDoc[3], rDoc[4], rDoc[5], rDoc[6], rDoc[7], rDoc[8], rDoc[9], rDoc[10], rDoc[11], rDoc[12], rDoc[13], rDoc[14], rDoc[15], rDoc[16], rDoc[17], rDoc[18], rDoc[19]); + } + catch (Exception exc) + { + logger.Error("Eccezione in createUrlDoc{0}{1}", Environment.NewLine, exc); + } + return answ; + } + /// + /// crea url formattato x upload CLI + /// + /// + /// + protected string createUrlCli(string[] rCli) + { + string answ = ""; + try + { + answ = string.Format("{0}?CodCliente={1}&RagSoc={2}&CodFis={3}&Tel={4}&Cell={5}&EnableSMS={6}&Email={7}&Indir={8}&Cap={9}&Localita={10}&Prov={11}&Note={12}", ConfigurationManager.AppSettings["remoteCliUrl"], rCli[0], rCli[1], rCli[2], rCli[3], rCli[4], rCli[5], rCli[6], rCli[7], rCli[8], rCli[9], rCli[10], rCli[11]); + } + catch (Exception exc) + { + logger.Error("Eccezione in createUrlCli{0}{1}", Environment.NewLine, exc); + } + return answ; + } + } } \ No newline at end of file