/// <summary> /// Fonction principale. /// </summary> /// <param name="args">Arguments de la ligne de commande.</param> static void Main(string[] args) { bool tmpBool; int tmpInt; string tmpString; StringBuilder errors = new StringBuilder(); XmlDocument xml = new XmlDocument(); xml.Load(configFile); // Lecture des paramètres du rapport if (false == Boolean.TryParse(GetSettingsValue(xml, RapportTags.Sheet), out tmpBool)) { tmpBool = false; } RapportSettings.BySheetOutput = tmpBool; RapportSettings.File = GetSettingsValue(xml, RapportTags.SqlFile); RapportSettings.OutFilePrefix = GetSettingsValue(xml, RapportSettings.OutFilePrefix); RapportSettings.SheetNamePrefix = GetSettingsValue(xml, RapportTags.SheetPrefix); RapportSettings.OutFilePrefix = GetSettingsValue(xml, RapportTags.FilePrefix); RapportSettings.LogFilePrefix = GetSettingsValue(xml, RapportTags.LogPrefix); if (string.Empty != RapportSettings.LogFilePrefix.Trim()) { RapportSettings.LogFile = string.Format("{0}{1:yyyy_MM_dd}.log", RapportSettings.LogFilePrefix, DateTime.Now); Redirect = new OutToFile(RapportSettings.LogFile); } if (false == File.Exists(RapportSettings.File)) { errors.AppendLine("Le fichier SQL du rapport est manquant"); } if (false == File.Exists(configFile)) { errors.AppendLine("Le fichier de configuration est manquant"); } // Lecture des paramètres de la base de données. DbSettings.Address = GetSettingsValue(xml, DbTags.Server); DbSettings.Login = GetSettingsValue(xml, DbTags.Login); DbSettings.Pw = GetSettingsValue(xml, DbTags.Pw); if (false == Boolean.TryParse(GetSettingsValue(xml, DbTags.Trusted), out tmpBool)) { tmpBool = false; } DbSettings.TrustedConnection = tmpBool; DbSettings.Default = GetSettingsValue(xml, DbTags.DefaultDb); if (string.Empty == DbSettings.Address.Trim()) { errors.AppendLine("Pas de serveur défini dans le fichier de config"); } if (false == DbSettings.TrustedConnection && string.Empty == DbSettings.Login.Trim()) { errors.AppendLine("Il doit y avoir un login OU autoriser la connexion windows (Trusted)"); } if (false == DbSettings.TrustedConnection && string.Empty == DbSettings.Pw.Trim()) { Console.WriteLine(@"/!\ Pas de mot de passe défini pour le login /!\"); } if (string.Empty == DbSettings.Default.Trim()) { Console.WriteLine(@"/!\ Pas de base par défaut définie /!\"); } // Lecture des paramètres du mail if (false == Boolean.TryParse(GetSettingsValue(xml, MailTags.Send), out tmpBool)) { tmpBool = false; } MailSettings.Send = tmpBool; if (true == MailSettings.Send) { MailSettings.Server = GetSettingsValue(xml, MailTags.Smtp); if (false == int.TryParse(GetSettingsValue(xml, MailTags.Port), out tmpInt)) { tmpInt = 25; } MailSettings.Port = tmpInt; if (false == bool.TryParse(GetSettingsValue(xml, MailTags.MustLogin), out tmpBool)) { tmpBool = false; } MailSettings.MustLogin = tmpBool; if (true == MailSettings.MustLogin) { MailSettings.Login = GetSettingsValue(xml, MailTags.Login); MailSettings.Pw = GetSettingsValue(xml, MailTags.Pw); } MailSettings.Subject = GetSettingsValue(xml, MailTags.Subject); MailSettings.Body = GetSettingsValue(xml, MailTags.Body); MailSettings.Sender = GetSettingsValue(xml, MailTags.Sender); MailSettings.Recipient = GetSettingsValue(xml, MailTags.recipientTag); } if (true == MailSettings.Send && string.Empty == MailSettings.Server.Trim()) { errors.AppendLine("Aucun serveur mail défini alors que l'envoi de mail est actif"); } if (true == MailSettings.Send && string.Empty == MailSettings.Sender.Trim()) { errors.AppendLine("Aucune adresse mail d'envoi définie alors que l'envoi de mail est actif"); } if (true == MailSettings.Send && string.Empty == MailSettings.Recipient.Trim()) { errors.AppendLine("Aucune adresse mail de destination définie alors que l'envoi de mail est actif"); } if (true == MailSettings.MustLogin && string.Empty == MailSettings.Login.Trim()) { errors.AppendLine("Le serveur de mail est configuré pour demander un login, mais aucun login fourni"); } if (true == MailSettings.MustLogin && string.Empty == MailSettings.Pw.Trim()) { Console.WriteLine(@"/!\ Pas de mot de passe défini pour le serveur mail /!\"); } if (errors.Length > 0) { ErrorClose(errors.ToString()); } tmpString = GetSettingsValue(xml, FormatTags.DateTimeFormat); if (tmpString != string.Empty) { FormatSettings.DateTime = tmpString; } // Extraction des paramètres ParamsExtract(); // Extraction des données DataSet data = MsSqlServer.Extract(); string ExcelFileName = Excel.Generate(data); try { sendMail(ExcelFileName); } catch (Exception exp) { ErrorClose(string.Format("Erreur lors de l'envoi du mail : {0}", exp.Message)); } finally { if (Redirect != null) { Redirect.Dispose(); } } // Suppression du fichier de logs si le fichier est vide. if (File.Exists(RapportSettings.LogFile)) { FileInfo fi = new FileInfo(RapportSettings.LogFile); if (fi.Length == 0) { File.Delete(RapportSettings.LogFile); } } }