public static OdbcConnection CreateOdbcConnexionSQL() { DbConnectionStringBuilder connectionString = new DbConnectionStringBuilder(); connectionString.Add("Dsn", ""); connectionString.Add("Driver", "{SAGE Gestion commerciale 100}"); ConnexionSaveLoad settings = new ConnexionSaveLoad(); if (settings.isSettings()) { settings.Load(); connectionString.Add("Dsn", settings.configurationConnexion.SQL.DNS); connectionString.Add("uid", settings.configurationConnexion.SQL.USER); connectionString.Add("pwd", settings.configurationConnexion.SQL.PWD); } return(new OdbcConnection(connectionString.ConnectionString)); }
public static OdbcConnection CreateOdbcConnextion() { DbConnectionStringBuilder connectionString = new DbConnectionStringBuilder(); connectionString.Add("Dsn", ""); connectionString.Add("Driver", "{SAGE Gestion commerciale 100}"); ConnexionSaveLoad settings = new ConnexionSaveLoad(); if (settings.isSettings()) { settings.Load(); connectionString.Add("Dsn", settings.configurationConnexion.ODBC.DNS); connectionString.Add("uid", settings.configurationConnexion.ODBC.USER); connectionString.Add("pwd", settings.configurationConnexion.ODBC.PWD); //connectionString__ = @"Data Source=" + directory_db + ";uid="+ settings.configurationConnexion.ODBC.USER + ";pwd="+ settings.configurationConnexion.ODBC.PWD + ";"; } return(new OdbcConnection(connectionString.ConnectionString)); //return new OdbcConnection(connectionString__); }
/// <summary> /// Génération du fichier d'import, lancement de l'application et import des commandes /// </summary> public List <Alert_Mail.Classes.Custom.CustomMailRecapLines> ExportCommande(List <Alert_Mail.Classes.Custom.CustomMailRecapLines> recapLinesList_new) { string path = ""; Init.Classes.SaveLoadInit setting = new Init.Classes.SaveLoadInit(); setting.Load(); path = setting.configurationGeneral.paths.EDI_Folder; string exportPath = path; string exportTo = ""; Order CommandeAExporter = null; if (!Directory.Exists(logDirectoryName_export)) { Directory.CreateDirectory(logDirectoryName_export); } logFileName_export = logDirectoryName_export + @"\" + string.Format("LOG_Export_Commande_{0:dd-MM-yyyy HH.mm.ss}.txt", DateTime.Now); var logFile_export = File.Create(logFileName_export); //Write in the log file logFileWriter = new StreamWriter(logFile_export); //logFileWriter.Write(string.Format("{0:HH:mm:ss}", DateTime.Now) + " \r\n"); logFileWriter.WriteLine("#####################################################################################"); logFileWriter.WriteLine("################################ ConnecteurSage Sage ################################"); logFileWriter.WriteLine("#####################################################################################"); logFileWriter.WriteLine(""); //Export all CMDs with status 1 //Get Doc Entette DO_Statut /* Get a list of 100 orders for Veolog with a DO_Statut == 1 * Export the 'Bon de Livraison' BC as .csv file * send the csv file to Velog */ string[,] lits_of_stock = new string[100, 2]; int countLimit = 0; using (OdbcConnection connexion = ConnexionManager.CreateOdbcConnexionSQL()) { Config_Export.ConfigurationSaveLoad settings = new Config_Export.ConfigurationSaveLoad(); try { settings.Load(); connexion.Open(); OdbcCommand command = new OdbcCommand(QueryHelper.getCommandeStatut(true, settings.configurationExport.Commande.Status), connexion); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.getCommandeStatut(true, settings.configurationExport.Commande.Status)); using (IDataReader reader = command.ExecuteReader()) { while (reader.Read()) // reads lines/rows from the query { //if (reader[1].ToString().Equals("1")) //{ if (countLimit < 100) { lits_of_stock[countLimit, 0] = reader[0].ToString(); // cbMarq lits_of_stock[countLimit, 1] = reader[1].ToString(); // DO_Statut logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : result " + countLimit + " => cbMarq : " + reader[0].ToString() + " | DO_Statut : " + reader[1].ToString()); //Console.WriteLine(DateTime.Now + " | ExportCommande() : cbMarq = " + reader[0].ToString() + " DO_Statut = " + reader[1].ToString()); countLimit++; } //} } } connexion.Close(); } catch (OdbcException ex) { logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() | ********************** OdbcException *********************"); logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() | SQL ===> " + QueryHelper.getCommandeStatut(true, settings.configurationExport.Commande.Status)); logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() | Message : " + ex.Message + "."); logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() | Scan annulée"); logFileWriter.Flush(); logFileWriter.Close(); recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export)); return(recapLinesList_new); } } logFileWriter.Flush(); Console.WriteLine(DateTime.Now + " | ExportCommande() :: countLimit:" + countLimit); logFileWriter.WriteLine(""); for (int index = 0; index < countLimit; index++) { //Console.WriteLine("OK2 index:" + index+ " countLimit:" + countLimit+" "); //CommandeAExporter using (OdbcConnection connexion = ConnexionManager.CreateOdbcConnexionSQL()) { //Console.WriteLine("OK3"); try { //string deliveryClientName = ""; connexion.Open(); OdbcCommand command = new OdbcCommand(QueryHelper.getCoommandeById(true, lits_of_stock[index, 0]), connexion); Console.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.getCoommandeById(true, lits_of_stock[index, 0])); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.getCoommandeById(true, lits_of_stock[index, 0])); using (IDataReader reader = command.ExecuteReader()) { while (reader.Read()) // reads lines/rows from the query { // DO_Piece, cli.CT_Num, Adresse, cmd.DO_DEVISE, cmd.DO_Date, cmd.DO_DateLivr, cmd.DO_Condition, cmd.DO_TotalHT, cli.CT_Intitule, cmd.DO_Motif, cli.CT_EdiCode, cmd.N_CATCOMPTA, cmd.DO_MOTIF, liv.LI_Contact, cli.N_Expedition, cli.CT_Telephone, cli.CT_EMail, cli.CT_Commentaire CommandeAExporter = new Order(reader[0].ToString(), reader[1].ToString(), reader[2].ToString(), reader[3].ToString(), reader[4].ToString(), reader[5].ToString(), reader[6].ToString(), reader[7].ToString(), reader[8].ToString(), reader[9].ToString(), reader[10].ToString(), reader[11].ToString(), reader[12].ToString()); CommandeAExporter.telephone = reader[13].ToString(); CommandeAExporter.email = reader[14].ToString(); CommandeAExporter.commentaires = ""; CommandeAExporter.Transporteur = ""; } } if (CommandeAExporter != null) { docRefMail = CommandeAExporter.NumCommande; if (!CommandeAExporter.NomClient.Equals("") && !CommandeAExporter.NomClient.Equals(" ")) { logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Export Commande du client \"" + CommandeAExporter.NomClient + "\""); } else { logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Export Commande du client \"...\""); } try { if (CommandeAExporter.deviseCommande == "0") { CommandeAExporter.deviseCommande = "1"; } if (CommandeAExporter.deviseCommande != "") { CommandeAExporter.deviseCommande = getDeviseIso(CommandeAExporter.deviseCommande); } if (CommandeAExporter.DO_MOTIF == "") { CommandeAExporter.DO_MOTIF = CommandeAExporter.NumCommande; } if (CommandeAExporter.DO_MOTIF == "") { CommandeAExporter.DO_MOTIF = ""; logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande non enregistrer, valeur '" + CommandeAExporter.DO_MOTIF + "'."); } else { logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande non enregistrer, valuer '" + CommandeAExporter.DO_MOTIF + "'."); } if (CommandeAExporter.codeClient == "") { CommandeAExporter.codeClient = ""; logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Code GNL client n'est pas enregistrer, valeur '" + CommandeAExporter.codeClient + "'."); } else { logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Code GNL client n'est pas enregistrer, valeur '" + CommandeAExporter.codeClient + "'."); } if (!IsNumeric(CommandeAExporter.DO_MOTIF) && CommandeAExporter.DO_MOTIF != "") { CommandeAExporter.DO_MOTIF = ""; logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande est mal enregistrer, valeur '" + CommandeAExporter.DO_MOTIF + "'."); } else { logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande est mal enregistrer, valeur '" + CommandeAExporter.DO_MOTIF + "'."); } if (!IsNumeric(CommandeAExporter.codeClient) && CommandeAExporter.codeClient != "") { CommandeAExporter.DO_MOTIF = ""; logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Code GNL client est mal enregistrer."); } else { logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande est mal enregistrer, valeur '" + CommandeAExporter.DO_MOTIF + "'."); } var fileName = string.Format("EDI_ORDERS." + CommandeAExporter.codeClient + "." + CommandeAExporter.NumCommande + "." + ConvertDate(CommandeAExporter.DateCommande) + "." + CommandeAExporter.adresseLivraison + ".{0:yyyyMMddhhmmss}.csv", DateTime.Now); fileName = fileName.Replace("...", "."); //Verifier le format utilise depuis le fichier de config Config_Export.ConfigurationSaveLoad settings = new Config_Export.ConfigurationSaveLoad(); settings.Load(); bool veolog_format = (settings.configurationExport.Commande.Format == "Véolog" ? true : false); Console.WriteLine("veolog_format : " + veolog_format); if (veolog_format) { exportTo = @"Export\Veolog_Commande"; if (!exportPath.Contains("Export_Veolog")) { exportPath = exportPath + @"\Export_Veolog"; } if (!Directory.Exists(exportPath)) { Directory.CreateDirectory(exportPath); } Connexion.ConnexionSaveLoad connexionSaveLoad = new Connexion.ConnexionSaveLoad(); connexionSaveLoad.Load(); veolog_format = true; fileName = string.Format("orders_" + connexionSaveLoad.configurationConnexion.SQL.PREFIX + "_{0:yyyyMMdd}_" + CommandeAExporter.NumCommande + ".csv", DateTime.Now); } else { exportTo = @"Export\Plat_Commande"; if (!exportPath.Contains("Export_Plat")) { exportPath = exportPath + @"\Export_Plat"; } if (!Directory.Exists(exportPath)) { Directory.CreateDirectory(exportPath); } veolog_format = false; fileName = fileName.Replace("..", "."); } bool veolog_file_check = false; using (StreamWriter orderFileWriter = new StreamWriter(exportPath + @"\" + fileName, false, Encoding.Default)) { logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Ecrire le fichier dans : " + exportPath + @"\" + fileName); //Console.WriteLine("Export File Name: " + exportPath + @"\" + fileName); if (veolog_format) { //format Veolog string[] adresse = new string[5]; string[] date_time_delivery = new string[2]; adresse = CommandeAExporter.adresseLivraison.Split(','); date_time_delivery = CommandeAExporter.DateLivraison.Split(' '); //Split the adresse CommandeAExporter.adresse = adresse[0]; CommandeAExporter.adresse_2 = adresse[1]; CommandeAExporter.codepostale = adresse[2]; CommandeAExporter.ville = adresse[3]; // Get the country CommandeAExporter.pays = adresse[4]; //Get Country ISO CountryFormatISO iso = new CountryFormatISO(); string[,] country_iso = iso.getAllStaticCountryISOCode(); if (CommandeAExporter.pays == "") { CommandeAExporter.pays = "France"; } for (int i = 0; i < country_iso.GetLength(0); i++) { if (country_iso[i, 0].ToUpper().Equals(CommandeAExporter.pays.ToUpper())) { CommandeAExporter.pays = country_iso[i, 1]; } } //Split the DateTime DateTime date_delivery = Convert.ToDateTime(CommandeAExporter.DateLivraison); //CommandeAExporter.DateCommande = date_time[0].Replace("/", ""); //CommandeAExporter.DateLivraison = date_delivery.Year + "" + date_delivery.Month + "" + date_delivery.Day + ""; CommandeAExporter.DateLivraison = string.Format("{0:yyyyMMdd}", date_delivery); string[] time_delivery = date_time_delivery[1].Split(':'); CommandeAExporter.HeureLivraison = time_delivery[0] + "" + time_delivery[1]; orderFileWriter.WriteLine("E;" + CommandeAExporter.NumCommande + ";" + CommandeAExporter.codeClient + ";;" + CommandeAExporter.NomClient + ";" + CommandeAExporter.adresse + ";" + CommandeAExporter.adresse_2 + ";;" + CommandeAExporter.codepostale + ";" + CommandeAExporter.ville + ";" + CommandeAExporter.pays + ";" + CommandeAExporter.telephone + ";" + CommandeAExporter.email + ";" + CommandeAExporter.DateLivraison + ";" + CommandeAExporter.HeureLivraison + ";" + CommandeAExporter.Transporteur + ";;;" + CommandeAExporter.commentaires); // E line CommandeAExporter.Lines = getLigneCommande(CommandeAExporter.NumCommande, recapLinesList_new); // Maybe thisssss int qteTotal = 0; string[] declarerpourrien = new string[2]; for (int i = 0; i < CommandeAExporter.Lines.Count; i++) { if (!IsNumeric(CommandeAExporter.Lines[i].codeAcheteur)) { CommandeAExporter.Lines[i].codeAcheteur = ""; } if (!IsNumeric(CommandeAExporter.Lines[i].codeFournis)) { CommandeAExporter.Lines[i].codeFournis = ""; } declarerpourrien = CommandeAExporter.Lines[i].Quantite.Split(','); qteTotal = qteTotal + Convert.ToInt16(declarerpourrien[0]); //add zeros to the article reference only for ALDI Connexion.ConnexionSaveLoad connexionSaveLoad = new Connexion.ConnexionSaveLoad(); connexionSaveLoad.Load(); string dns = connexionSaveLoad.configurationConnexion.SQL.PREFIX; if (dns.Contains("CFCI") || dns.Contains("TABLEWEAR") && CommandeAExporter.NomClient.Contains("ALDI")) { int maxChar = 13; int refChar = CommandeAExporter.Lines[i].codeArticle.Length; int addZero = maxChar - refChar; for (int index1 = 0; index1 < addZero; index1++) { CommandeAExporter.Lines[i].codeArticle = "0" + CommandeAExporter.Lines[i].codeArticle; } } orderFileWriter.WriteLine("L;;" + ((CommandeAExporter.Lines[i].codeArticle.Length > 30) ? CommandeAExporter.Lines[i].codeArticle.Substring(0, 30) : CommandeAExporter.Lines[i].codeArticle) + ";;" + declarerpourrien[0] + ";"); // L line } orderFileWriter.WriteLine("F;" + CommandeAExporter.Lines.Count + ";" + qteTotal + ";"); // F line orderFileWriter.Close(); } else { //Format Fichier plat orderFileWriter.WriteLine("ORDERS;" + CommandeAExporter.DO_MOTIF + ";" + CommandeAExporter.codeClient + ";" + CommandeAExporter.codeAcheteur + ";" + CommandeAExporter.codeFournisseur + ";;;" + CommandeAExporter.nom_contact + "." + CommandeAExporter.adresseLivraison.Replace("..", ".").Replace("...", ".") + ";" + CommandeAExporter.deviseCommande + ";;"); if (CommandeAExporter.DateCommande != "") { CommandeAExporter.DateCommande = ConvertDate(CommandeAExporter.DateCommande); } //if (CommandeAExporter.DateCommande != " ") //{ // CommandeAExporter.conditionLivraison = ""; } } //Vérifier si le fichier a bien été créé et écrit if (File.Exists(exportPath + @"\" + fileName)) { if (new FileInfo(exportPath + @"\" + fileName).Length > 0) { veolog_file_check = true; //add to backup folder addFileToBackUp(path + @"\BackUp\" + exportTo, exportPath + @"\" + fileName, fileName, logFileWriter); } } else { Console.WriteLine("File: " + fileName + " does not exist!!!"); logFileWriter.WriteLine(DateTime.Now + " : File: " + fileName + " does not exist!!!"); //Console.ReadLine(); } //update veolog delivery date if (veolog_file_check) { try { string delivery_date_veolog = string.Format("{0:dd/MM/yyyy hh:mm:ss}", DateTime.Now); logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Ajouter la date de livraision \"" + delivery_date_veolog + "\" de Veolog de la commande \"" + CommandeAExporter.NumCommande + "\"."); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.updateVeologDeliveryDate(true, CommandeAExporter.NumCommande, delivery_date_veolog)); OdbcCommand command1 = new OdbcCommand(QueryHelper.updateVeologDeliveryDate(true, CommandeAExporter.NumCommande, delivery_date_veolog), connexion); { using (IDataReader reader = command1.ExecuteReader()) { logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Date de livraison veolog à jour !"); } } } catch (Exception ex) { logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " ********** Erreur ********** "); if (File.Exists(exportPath + @"\" + fileName)) { try { File.Delete(exportPath + @"\" + fileName); logFileWriter.WriteLine(DateTime.Now + " Le fichier \" " + exportPath + @"\" + fileName + " \" est supprimer !."); } catch (Exception exf) { logFileWriter.WriteLine(DateTime.Now + " ********** Erreur Delete File ********** "); logFileWriter.WriteLine(DateTime.Now + " Impossible de supprimer le fichier \" " + exportPath + @"\" + fileName + " \"."); logFileWriter.WriteLine(DateTime.Now + " Message: " + exf.Message); } } else { logFileWriter.WriteLine(DateTime.Now + " Le fichier \" " + exportPath + @"\" + fileName + " \" n'existe plus (peut déjà être envoyé en EDI)."); } logFileWriter.WriteLine(DateTime.Now + " Message: " + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", "")); logFileWriter.WriteLine(DateTime.Now + " Export Annuler."); logFileWriter.Flush(); logFileWriter.Close(); if (ex.Message.Contains("Cet élément est en cours d'utilisation !")) { logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Cet élément est en cours d'utilisation ! Impossible de changer le statut de la commande \"" + CommandeAExporter.NumCommande + "\"."); recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée. Cet élément est en cours d'utilisation ! Veuillez fermer la fenêtre de commande dans Sage afin que la commande puisse être exportée.", "Cet élément est en cours d'utilisation ! Impossible de mettre la date de livraison veolog à jour dans le champs \"Veolog\".", ex.StackTrace, "", logFileName_export)); } else { logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : " + ex.Message); recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export)); } return(recapLinesList_new); } //update order statut try { logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Changer le statut de la commande \"" + CommandeAExporter.NumCommande + "\"."); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.changeOrderStatut(true, CommandeAExporter.NumCommande)); OdbcCommand command1 = new OdbcCommand(QueryHelper.changeOrderStatut(true, CommandeAExporter.NumCommande), connexion); { using (IDataReader reader = command1.ExecuteReader()) { while (reader.Read()) { //Statut Update } } } } catch (Exception ex) { //Exceptions pouvant survenir durant l'exécution de la requête SQL logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " ********** Erreur ********** "); if (File.Exists(exportPath + @"\" + fileName)) { try { File.Delete(exportPath + @"\" + fileName); logFileWriter.WriteLine(DateTime.Now + " Le fichier \" " + exportPath + @"\" + fileName + " \" est supprimer !."); } catch (Exception exf) { logFileWriter.WriteLine(DateTime.Now + " ********** Erreur Delete File ********** "); logFileWriter.WriteLine(DateTime.Now + " Impossible de supprimer le fichier \" " + exportPath + @"\" + fileName + " \"."); logFileWriter.WriteLine(DateTime.Now + " Message: " + exf.Message); } } else { logFileWriter.WriteLine(DateTime.Now + " Le fichier \" " + exportPath + @"\" + fileName + " \" n'existe plus (peut déjà être envoyé en EDI)."); } logFileWriter.WriteLine(DateTime.Now + " Message: " + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", "")); logFileWriter.WriteLine(DateTime.Now + " Export Annuler."); logFileWriter.Flush(); // logFileWriter.Close(); if (ex.Message.Contains("Cet élément est en cours d'utilisation !")) { logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Cet élément est en cours d'utilisation ! Impossible de changer le statut de la commande \"" + CommandeAExporter.NumCommande + "\"."); recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée. Cet élément est en cours d'utilisation ! Veuillez fermer la fenêtre de commande dans Sage afin que la commande puisse être exportée.", "Cet élément est en cours d'utilisation ! Impossible de changer le statut de la commande \"" + CommandeAExporter.NumCommande + "\".", ex.StackTrace, "", logFileName_export)); } else { logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : " + ex.Message); recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export)); } //recapLinesList_new.Add(new CustomMailRecapLines(docRefMail, "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export)); return(recapLinesList_new); } } logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Commande exportée avec succés."); //jamp:; //logFileWriter.Close(); //Close(); } catch (Exception ex) { //Exception pouvant survenir si lorsque l'accès au disque dur est refusé logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : ERREUR :: " + ex.Message); logFileWriter.Flush(); logFileWriter.Close(); Console.WriteLine(DateTime.Now + " | ExportCommande() : ERREUR :: " + ex.Message); recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export)); } } else { Console.WriteLine("CommandeAExporter == null"); } //Console.WriteLine(DateTime.Now + " | ExportCommande() : Connexion close."); connexion.Close(); } catch (OdbcException ex) { logFileWriter.WriteLine(""); logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() | ********************** OdbcException *********************"); logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() | Message : " + ex.Message + "."); logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() | Scan annulée"); logFileWriter.Flush(); logFileWriter.Close(); recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export)); return(recapLinesList_new); } } logFileWriter.Flush(); } logFileWriter.Close(); return(recapLinesList_new); }