Ejemplo n.º 1
0
        private static void summaryMail(ConfigurationSaveLoad file, ConfigurationEmail settings, Database.Database db)
        {
            Console.WriteLine("Résumer mail...");
            db.alertMailLogManager.insert(db.connectionString, "");
            db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Creation d une instance.");

            try
            {
                if (settings.emailSummary.active)
                {
                    Alert_Mail.EmailManagement emailManagement = new Alert_Mail.EmailManagement();

                    string directoryName_tmpFile = Directory.GetCurrentDirectory() + @"\" + "tmp";
                    if (!Directory.Exists(directoryName_tmpFile))
                    {
                        Directory.CreateDirectory(directoryName_tmpFile);
                        db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Ce répertoire " + directoryName_tmpFile + " n existe pas , alors créer le.");
                    }

                    DirectoryInfo fileListing1   = new DirectoryInfo(directoryName_tmpFile);
                    FileInfo[]    allFiles_error = fileListing1.GetFiles("*.csv");

                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Il y a " + allFiles_error.Length + " fichier(s) dans le répertoire.");

                    string[,] errorFilesFileNameList_ = new string[allFiles_error.Length, 2];
                    List <string> errorFilesFileNameList = new List <string>();
                    List <string> errorFilesFileList     = new List <string>();

                    DateTime today         = DateTime.Now;
                    DateTime lastActivated = settings.emailSummary.lastActivated;
                    TimeSpan ts            = today - lastActivated;

                    Console.WriteLine("Today : " + today);
                    Console.WriteLine("LastActivated : " + lastActivated);
                    Console.WriteLine("Ago : " + ts);

                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Date aujourd hui => " + string.Format("{0:dd-MM-yyyy HH.mm.ss}", today));
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Dernière fois lancé => " + lastActivated);
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Temps de lancement depuis la dernière fois => " + ts.TotalHours + " heure(s)");

                    if (ts.TotalHours >= Convert.ToDouble(settings.emailSummary.hours))
                    {
                        Console.WriteLine("Envoi un Mail Résumer en cours...");
                        db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Envoi un Mail Résumer en cours...");

                        ConfigurationCustomMailSaveLoad mConfigurationCustomMailSaveLoad = new ConfigurationCustomMailSaveLoad();

                        if (mConfigurationCustomMailSaveLoad.isSettings(mConfigurationCustomMailSaveLoad.fileName_ERR_recap))
                        {
                            // uncomment the Recap file creation too!!!!!

                            /*
                             * if (settings.emailLists.emailClientList.Count == 0 && settings.emailLists.emailTeamList.Count == 0)
                             * {
                             *  Console.WriteLine("Aucun address mail enregistré!");
                             * }
                             *
                             * CustomMailRecap recap = new CustomMailRecap();
                             * //recap.Load("Mail_Recap.ml");
                             * string infoBody_end = "";
                             * string infoBody2 = "";
                             * string infoBodyHeader2 = "";
                             *
                             * List<string> attachements = new List<string>();
                             *
                             * //import file error
                             * if (allFiles_error.Length > 0)
                             * {
                             *  mConfigurationCustomMailSaveLoad.Load(mConfigurationCustomMailSaveLoad.fileName_ERR_recap);
                             *  CustomMailRecap mailRecap = mConfigurationCustomMailSaveLoad.customMailRecap;
                             *
                             *  //mailRecap.Lines = new List<CustomMailRecapLines>();
                             *
                             *  if(mailRecap.Lines.Count > 0)
                             *  {
                             *      infoBodyHeader2 += "Il y a " + allFiles_error.Length + " fichier(s) qui sont tombé en erreur lors de l'import. Ils qui sont dans le le répertoire '" + directoryName_ErrorFile + "' :\n";
                             *  }
                             *
                             *  for (int x = 0; x < mailRecap.Lines.Count; x++)
                             *  {
                             *      errorFilesFileNameList_[x, 0] = mailRecap.Lines[x].NumCommande;
                             *      errorFilesFileNameList_[x, 1] = mailRecap.Lines[x].FilePath;
                             *
                             *      errorFilesFileNameList.Add(mailRecap.Lines[x].NumCommande);
                             *      errorFilesFileList.Add(mailRecap.Lines[x].FilePath);
                             *  }
                             *
                             *  Console.WriteLine("mailRecap.Lines.Count : " + mailRecap.Lines.Count);
                             *
                             *  int a = 0;
                             *  List<string> unknownFileName = new List<string>();
                             *  List<string> unknownFileEDI = new List<string>();
                             *  for (int y = 0; y < mailRecap.Lines.Count; y++)
                             *  {
                             *      Console.WriteLine(y + " - FileNameList : " + errorFilesFileNameList[y] + "\nNumCommande : " + mailRecap.Lines[y].NumCommande);
                             *      if (errorFilesFileNameList.Contains(mailRecap.Lines[y].NumCommande))
                             *      {
                             *          Console.WriteLine("y: " + y + " || FileInfo : " + allFiles_error[y].Name + " == Mail Recap : " + allFiles_error[y].Name);
                             *          infoBody2 += (y + 1) + " -\t Le numéro du document \"" + mailRecap.Lines[y].DocumentReference + "\"\nNom du fichier : " + mailRecap.Lines[y].FileName + "\nMessage erreur : " + mailRecap.Lines[y].DocumentErrorMessageDebug + "\nStackTrace: " + mailRecap.Lines[y].DocumentErrorStackTraceDebug + "\nL'erreur peut etre trouvé dans " + mailRecap.Lines[y].FilePath + "\n\n";
                             *          a++;
                             *
                             *          if (!attachements.Contains(mailRecap.Lines[y].FilePath))
                             *          {
                             *              attachements.Add(mailRecap.Lines[y].FilePath);
                             *          }
                             *      }
                             *      else
                             *      {
                             *          unknownFileName.Add(errorFilesFileNameList_[y, 0]);
                             *          unknownFileEDI.Add(errorFilesFileNameList_[y, 1]);
                             *      }
                             *  }
                             *
                             *  for (int x = 0; x < allFiles_error.Length; x++)
                             *  {
                             *      infoBody2 += "\tNom du fichier : \"" + allFiles_error[x].Name + "\", à " + emailManagement.getFileSize(allFiles_error[x].Length) + "\n";
                             *      attachements.Add(allFiles_error[x].FullName);
                             *  }
                             *
                             *  Console.WriteLine("Size 1 : " + attachements.Count);
                             *
                             *  if (a == 0)
                             *  {
                             *      infoBodyHeader2 = "";
                             *  }
                             * }
                             *
                             * if (allFiles_error.Length > 0 && infoBody2.Length > 0)
                             * {
                             *  infoBody_end += "Bonjour Team BDC, \n\nVoici un récapitulatif des documents. \n" + infoBodyHeader2 + infoBody2;
                             *
                             *  emailManagement.EnvoiMail(settings, "log", "Résumer [" + recap.Client + "] " + recap.Subject, infoBody_end + "\nCordialement,\nConnecteur SAGE [" + recap.Client + "].", attachements);
                             *
                             *  //delete recap file
                             *
                             *  if (File.Exists(mConfigurationCustomMailSaveLoad.fileName_ERR_recap))
                             *  {
                             *      File.Delete(mConfigurationCustomMailSaveLoad.fileName_ERR_recap);
                             *  }
                             * }
                             *
                             * // the DateTime
                             * settings.emailSummary.lastActivated = DateTime.Now;
                             * file.configurationEmail = settings;
                             * file.saveInfo();
                             */
                        }
                        else
                        {
                            string        infoBody     = "";
                            List <string> attachements = new List <string>();
                            string        dns          = emailManagement.getDNS();

                            //import file error
                            if (allFiles_error.Length > 0)
                            {
                                infoBody = "Il y a " + allFiles_error.Length + " fichier(s) qui sont dans le répertoire erreur '" + directoryName_tmpFile + "' :\n";

                                for (int x = 0; x < allFiles_error.Length; x++)
                                {
                                    infoBody += "\tNom du fichier : \"" + allFiles_error[x].Name + "\", à " + emailManagement.getFileSize(allFiles_error[x].Length) + "\n Date de création " + string.Format("{0:yyyy/MM/dd HH:mm}", allFiles_error[x].CreationTime) + " et date de modification " + string.Format("{0:yyyy/MM/dd HH:mm}", allFiles_error[x].LastWriteTime) + ".\n";

                                    if (!attachements.Contains(allFiles_error[x].FullName))
                                    {
                                        attachements.Add(allFiles_error[x].FullName);
                                    }
                                }

                                if (allFiles_error.Length > 0)
                                {
                                    emailManagement.EnvoiMail(settings, "log", "Résumer [" + dns + "]", "Bonjour Team BDC,\n\n" + infoBody + "\n\nCordialement,\nConnecteur SAGE [" + dns + "].", attachements, db);

                                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Mail Envoyé => Résumer [" + dns + "]");
                                }

                                Console.WriteLine("No Mail_Recap.ml File!");

                                // the DateTime
                                settings.emailSummary.lastActivated = DateTime.Now;
                                file.configurationEmail             = settings;
                                file.saveInfo();
                                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Reset lastActivated to " + string.Format("{0:dd-MM-yyyy HH.mm.ss}", settings.emailSummary.lastActivated));
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("Envoi des mails de résumer sont désactivé!");
                        db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Envoi des mails de résumer sont désactivé!");
                    }

                    //stop at the end of the program
                }//Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(DateTime.Now + " | Main() : *********** Exception Main CheckErrorFiles ***********");
                Console.WriteLine(DateTime.Now + " | Main() : " + ex.Message);
                Console.WriteLine(DateTime.Now + " | Main() : " + ex.StackTrace);

                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " :: ############################### Exception EnvoiMail ###############################");
                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | Message : " + ex.Message);
                //db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: summaryMail() | StackTrace : " + ex.StackTrace);
                db.alertMailLogManager.insert(db.connectionString, "");
            }
        }
        public MailCustom generateMailBody(string type, Database.Database db)
        {
            db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody(type: " + type + ") | Creation d une instance.");

            if (type.Equals("client_error"))
            {
                CustomMailRecap recap_imp = null;
                CustomMailRecap recap_exp = null;
                ConfigurationCustomMailSaveLoad configurationCustomMailSaveLoad = new ConfigurationCustomMailSaveLoad();

                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | type => client_error");

                bool          sendMailImp  = false;
                string        textImp      = "";
                string        textImp_     = "";
                bool          sendMailExp  = false;
                string        textExp      = "";
                string        textExp_     = "";
                List <string> attachements = new List <string>();

                //check if the file exist
                if (configurationCustomMailSaveLoad.isSettings(configurationCustomMailSaveLoad.fileName_ERR_Imp))
                {
                    configurationCustomMailSaveLoad.Load(configurationCustomMailSaveLoad.fileName_ERR_Imp);
                    recap_imp = configurationCustomMailSaveLoad.customMailRecap;

                    //make the following body message
                    if (recap_imp.Lines.Count == 0)
                    {
                        sendMailImp = false;
                    }
                    else if (recap_imp.Lines.Count == 1)
                    {
                        sendMailImp = true;
                        textImp    += "L'import d'un document commercial a échoué. Voici un résumé du document en erreur :\n";
                    }
                    else if (recap_imp.Lines.Count > 1)
                    {
                        sendMailImp = true;
                        textImp    += "L'import de plusieurs documents commerciaux ont échoué. Voici le résumé de chaque document en erreur :\n";
                    }


                    for (int i = 0; i < recap_imp.Lines.Count; i++)
                    {
                        if (recap_imp.Lines[i].DocumentErrorMessage != null && !recap_imp.Lines[i].DocumentErrorMessage.Equals(""))
                        {
                            textImp_ += (i + 1) + " -\t Le numéro du document \"" + recap_imp.Lines[i].DocumentReference + "\" de la commande \"" + recap_imp.Lines[i].NumCommande + "\",\n" +
                                        " \t a une erreur : " + recap_imp.Lines[i].DocumentErrorMessage + "\n";
                        }
                    }

                    if (textImp_.Equals(""))
                    {
                        sendMailImp = false;
                    }
                    else
                    {
                        textImp += textImp_;
                    }
                }
                else
                {
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Fichier mail => " + configurationCustomMailSaveLoad.fileName_ERR_Imp + " n existe pas.");
                }

                //check if the file exist
                if (configurationCustomMailSaveLoad.isSettings(configurationCustomMailSaveLoad.fileName_ERR_Exp))
                {
                    configurationCustomMailSaveLoad.Load(configurationCustomMailSaveLoad.fileName_ERR_Exp);
                    recap_exp = configurationCustomMailSaveLoad.customMailRecap;


                    //make the following body message
                    if (recap_exp.Lines.Count == 0)
                    {
                        sendMailExp = false;
                    }
                    else if (recap_exp.Lines.Count == 1)
                    {
                        sendMailExp = true;
                        textExp    += "L'import d'un document commercial a échoué. Voici un résumé du document :\n";
                    }
                    else if (recap_exp.Lines.Count > 1)
                    {
                        sendMailExp = true;
                        textExp    += "L'import de plusieurs documents commerciaux a échoué. Voici le résumé détaillé :\n";
                    }

                    for (int i = 0; i < recap_exp.Lines.Count; i++)
                    {
                        if (recap_exp.Lines[i].DocumentErrorMessage != null && !recap_exp.Lines[i].DocumentErrorMessage.Equals(""))
                        {
                            textExp_ += (i + 1) + " -\t Le numéro du document \"" + recap_exp.Lines[i].DocumentReference + "\" du fichier EDI : " + recap_exp.Lines[i].FileName + ", a une erreur : " + recap_exp.Lines[i].DocumentErrorMessage + "\n";
                        }
                    }

                    if (textExp_.Equals(""))
                    {
                        sendMailExp = false;
                    }
                    else
                    {
                        textExp += textExp_;
                    }
                }
                else
                {
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Fichier mail => " + configurationCustomMailSaveLoad.fileName_ERR_Exp + " n existe pas.");
                }

                //send the recap mail
                MailCustom xxx = null;
                if (sendMailImp & !sendMailExp)
                {
                    xxx = new MailCustom("[" + recap_imp.Client + "] " + recap_imp.Subject, "Bonjour, \n\n" + textImp + "\nCordialement,\nConnecteur SAGE [" + recap_imp.Client + "]. Version client.", null);
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Json : " + Newtonsoft.Json.JsonConvert.SerializeObject(xxx, Newtonsoft.Json.Formatting.Indented));
                    return(xxx);
                }
                else if (sendMailExp & !sendMailImp)
                {
                    xxx = new MailCustom("[" + recap_exp.Client + "] " + recap_exp.Subject, "Bonjour, \n\n" + textExp + "\nCordialement,\nConnecteur SAGE [" + recap_exp.Client + "]. Version client.", null);
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Json : " + Newtonsoft.Json.JsonConvert.SerializeObject(xxx, Newtonsoft.Json.Formatting.Indented));
                    return(xxx);
                }
                else if (sendMailImp && sendMailExp)
                {
                    xxx = new MailCustom("[" + getDNS() + "] " + recap_imp.Subject + " et " + recap_exp.Subject, "Bonjour, \n\n" + textImp + "\n\n\n" + textExp + "\nCordialement,\nConnecteur SAGE [" + getDNS() + "]. Version client.", null);
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Json : " + Newtonsoft.Json.JsonConvert.SerializeObject(xxx, Newtonsoft.Json.Formatting.Indented));
                    return(xxx);
                }
                else
                {
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Rien à preparer.");
                    return(xxx);
                }
            }
            else if (type.Equals("log"))
            {
                CustomMailRecap recap_imp = null;
                CustomMailRecap recap_exp = null;
                ConfigurationCustomMailSaveLoad configurationCustomMailSaveLoad = new ConfigurationCustomMailSaveLoad();

                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | type => log");

                bool          sendMailImp  = false;
                string        textImp      = "";
                bool          sendMailExp  = false;
                string        textExp      = "";
                List <string> attachements = new List <string>();

                //check if the file exist
                if (configurationCustomMailSaveLoad.isSettings(configurationCustomMailSaveLoad.fileName_ERR_Imp))
                {
                    configurationCustomMailSaveLoad.Load(configurationCustomMailSaveLoad.fileName_ERR_Imp);
                    recap_imp = configurationCustomMailSaveLoad.customMailRecap;

                    //make the following body message
                    if (recap_imp.Lines.Count == 0)
                    {
                        sendMailImp = false;
                    }
                    else if (recap_imp.Lines.Count == 1)
                    {
                        sendMailImp = true;
                        textImp    += "L'import d'un document commercial a échoué. Voici un résumé du document en erreur :\n";
                    }
                    else if (recap_imp.Lines.Count > 1)
                    {
                        sendMailImp = true;
                        textImp    += "L'import de plusieurs documents commerciaux a échoué. Voici le résumé de chaque document en erreur :\n";
                    }
                    for (int i = 0; i < recap_imp.Lines.Count; i++)
                    {
                        textImp += (i + 1) + " -\t Le numéro du document \"" + recap_imp.Lines[i].DocumentReference + "\"\nNom du fichier : " + recap_imp.Lines[i].FileName + "\nMessage erreur : " + recap_imp.Lines[i].DocumentErrorMessageDebug + "\nStackTrace: " + recap_imp.Lines[i].DocumentErrorStackTraceDebug + "\nL'erreur peut etre trouvé dans " + recap_imp.Lines[i].FilePath + "\n\n";
                    }
                    if (sendMailImp)
                    {
                        attachements.AddRange(recap_imp.Attachments);
                    }
                }
                else
                {
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Fichier mail => " + configurationCustomMailSaveLoad.fileName_ERR_Imp + " n existe pas.");
                }

                //check if the file exist
                //check if the file exist
                if (configurationCustomMailSaveLoad.isSettings(configurationCustomMailSaveLoad.fileName_ERR_Exp))
                {
                    configurationCustomMailSaveLoad.Load(configurationCustomMailSaveLoad.fileName_ERR_Exp);
                    recap_exp = configurationCustomMailSaveLoad.customMailRecap;


                    //make the following body message
                    if (recap_exp.Lines.Count == 0)
                    {
                        sendMailExp = false;
                    }
                    else if (recap_exp.Lines.Count == 1)
                    {
                        sendMailExp = true;
                        textExp    += "L'import d'un document commercial a échoué. Voici un résumé du document :\n";
                    }
                    else if (recap_exp.Lines.Count > 1)
                    {
                        sendMailExp = true;
                        textExp    += "L'import de plusieurs documents commerciaux a échoué. Voici le résumé de chaque document :\n";
                    }
                    for (int i = 0; i < recap_exp.Lines.Count; i++)
                    {
                        textExp += (i + 1) + " -\t Le numéro du document \"" + recap_exp.Lines[i].DocumentReference + "\"\nNom du fichier : " + recap_exp.Lines[i].FileName + "\nMessage erreur : " + recap_exp.Lines[i].DocumentErrorMessageDebug + "\nStackTrace: " + recap_exp.Lines[i].DocumentErrorStackTraceDebug + "\nL'erreur peut etre trouvé dans " + recap_exp.Lines[i].FilePath + "\n\n";
                    }
                    if (sendMailExp)
                    {
                        attachements.AddRange(recap_exp.Attachments);
                    }
                }
                else
                {
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Fichier mail => " + configurationCustomMailSaveLoad.fileName_ERR_Exp + " n existe pas.");
                }

                //send the recap mail
                MailCustom xxx = null;
                if (sendMailImp & !sendMailExp)
                {
                    xxx = new MailCustom("[" + recap_imp.Client + "] " + recap_imp.Subject, "Bonjour Team BDC, \n\n" + textImp + "\nCordialement,\nConnecteur SAGE [" + recap_imp.Client + "]. Version équipe", recap_imp.Attachments);
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Json : " + Newtonsoft.Json.JsonConvert.SerializeObject(xxx, Newtonsoft.Json.Formatting.Indented));
                    return(xxx);
                }
                else if (sendMailExp & !sendMailImp)
                {
                    xxx = new MailCustom("[" + recap_exp.Client + "] " + recap_exp.Subject, "Bonjour Team BDC, \n\n" + textExp + "\nCordialement,\nConnecteur SAGE [" + recap_exp.Client + "]. Version équipe", recap_exp.Attachments);
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Json : " + Newtonsoft.Json.JsonConvert.SerializeObject(xxx, Newtonsoft.Json.Formatting.Indented));
                    return(xxx);
                }
                else if (sendMailImp && sendMailExp)
                {
                    xxx = new MailCustom("[" + getDNS() + "] " + recap_imp.Subject + " et " + recap_exp.Subject, "Bonjour, \n\n" + textImp + "\n\n\n" + textExp + "\nCordialement,\nConnecteur SAGE [" + getDNS() + "]. Version équipe", attachements);
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Json : " + Newtonsoft.Json.JsonConvert.SerializeObject(xxx, Newtonsoft.Json.Formatting.Indented));
                    return(xxx);
                }
                else
                {
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Rien à preparer.");
                    return(xxx);
                }
            }
            else
            {
                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: Alert-Mail.dll => generateMailBody() | Aucun type trouvé!");
                return(null);
            }
        }
Ejemplo n.º 3
0
        private static void errorMail(ConfigurationEmail settings, Database.Database db)
        {
            Alert_Mail.EmailManagement emailManagement = new Alert_Mail.EmailManagement();
            try
            {
                db.alertMailLogManager.insert(db.connectionString, "");
                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | EndSoftwareExe...");
                Console.WriteLine("EndSoftwareExe...");

                if (settings.emailError.active)
                {
                    if (settings.emailLists.emailClientList.Count == 0 && settings.emailLists.emailTeamList.Count == 0)
                    {
                        Console.WriteLine("Aucun address mail enregistré!");
                        db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | EAucun address mail enregistré!");
                        return;
                    }

                    MailCustom mMailCustom_client = null;
                    MailCustom mMailCustom_log    = null;
                    try
                    {
                        mMailCustom_client = emailManagement.generateMailBody("client_error", db);
                        mMailCustom_log    = emailManagement.generateMailBody("log", db);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("");
                        Console.WriteLine(DateTime.Now + " | Main() : *********** Exception generateMailBody() ***********");
                        Console.WriteLine(DateTime.Now + " | Main() : " + ex.Message);
                        Console.WriteLine(DateTime.Now + " | Main() : " + ex.StackTrace);

                        db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " :: ############################### Exception generateMailBody() ###############################");
                        db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Message : " + ex.Message);
                        //db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | StackTrace : " + ex.StackTrace);
                        db.alertMailLogManager.insert(db.connectionString, "");

                        Console.WriteLine("");
                        mMailCustom_client = null;
                        mMailCustom_log    = null;
                    }

                    //Envoi
                    if (settings.emailError.informClient)
                    {
                        if (mMailCustom_client != null)
                        {
                            try
                            {
                                Console.WriteLine("Envoi de mail client en cours....");
                                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Envoi de mail client en cours....");
                                emailManagement.EnvoiMail(settings, "client", mMailCustom_client.subject, mMailCustom_client.body, mMailCustom_client.attachements, db);   //cheminLogFile
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("");
                                Console.WriteLine(DateTime.Now + " | Main() : *********** Exception Envoi Mail Error Client ***********");
                                Console.WriteLine(DateTime.Now + " | Main() : " + ex.Message);
                                Console.WriteLine(DateTime.Now + " | Main() : " + ex.StackTrace);

                                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " :: ############################### Exception Envoi Mail Error Client ###############################");
                                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Message : " + ex.Message);
                                //db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | StackTrace : " + ex.StackTrace);
                                db.alertMailLogManager.insert(db.connectionString, "");
                                Console.WriteLine("");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Nothing to send for the client");
                            db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Rien à envoie vers le client");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Send mail to client is desable");
                        db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Envoie mail client est désactivité");
                    }

                    if (settings.emailError.informTeam)
                    {
                        if (mMailCustom_log != null)
                        {
                            try
                            {
                                Console.WriteLine("Envoi de mail log en cours....");
                                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Envoi de mail log en cours....");
                                emailManagement.EnvoiMail(settings, "log", mMailCustom_log.subject, mMailCustom_log.body, mMailCustom_log.attachements, db);   //cheminLogFile
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine("");
                                Console.WriteLine(DateTime.Now + " | Main() : *********** Exception Envoi Mail Error Team log ***********");
                                Console.WriteLine(DateTime.Now + " | Main() : " + ex.Message);
                                Console.WriteLine(DateTime.Now + " | Main() : " + ex.StackTrace);

                                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " :: ############################### Exception Envoi Mail Error Team log ###############################");
                                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Message : " + ex.Message);
                                //db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | StackTrace : " + ex.StackTrace);
                                db.alertMailLogManager.insert(db.connectionString, "");
                                Console.WriteLine("");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No log to send for the team");
                            db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Rien à envoyer au team");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Send log mail to team is desable");
                        db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Envoie mail log au Team");
                    }

                    if (mMailCustom_client != null && mMailCustom_log != null)
                    {
                        ConfigurationCustomMailSaveLoad xxx = new ConfigurationCustomMailSaveLoad();

                        if (File.Exists(xxx.fileName_ERR_Imp))
                        {
                            File.Delete(xxx.fileName_ERR_Imp);
                        }
                        if (File.Exists(xxx.fileName_ERR_Exp))
                        {
                            File.Delete(xxx.fileName_ERR_Exp);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Les mails d'erreur sont désactivé!");
                    db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Les mails d erreur sont désactivé!");
                }

                db.alertMailLogManager.insert(db.connectionString, "");

                //stop at the end of the program
                //Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.WriteLine(DateTime.Now + " | Main() : *********** Exception Main EndSoftwareExe ***********");
                Console.WriteLine(DateTime.Now + " | Main() : " + ex.Message);
                Console.WriteLine(DateTime.Now + " | Main() : " + ex.StackTrace);


                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " :: ############################### Exception Main EndSoftwareExe ###############################");
                db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | Message : " + ex.Message);
                // db.alertMailLogManager.insert(db.connectionString, DateTime.Now + " : AlertMail :: errorMail() | StackTrace : " + ex.StackTrace);
                db.alertMailLogManager.insert(db.connectionString, "");
            }
        }