Exemplo n.º 1
0
        public static void WriteSpecificLog(List <String> log_in, LogIdentifier LogIdentifier)
        {
            try
            {
                if (log_in.Count > 0)
                {
                    if (LogStream != null)
                    {
                        CloseLog(LogStreamType.LogStream);
                    }
                    CreateLog(LogIdentifier.ToString(), LogStreamType.LogStream);
                    LogStream.WriteLine("");
                    LogStream.WriteLine("PrestaConnect version : " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString());
                    LogStream.WriteLine("");
                    LogStream.WriteLine(DateTime.Now.ToString("yyyy/MM/dd HH-mm"));
                    LogStream.WriteLine("");
                    LogStream.WriteLine("Informations de connexion :");
                    LogStream.WriteLine("Serveur d'exécution : " + Environment.MachineName);
                    LogStream.WriteLine("Domaine réseau : " + Environment.UserDomainName);
                    LogStream.WriteLine("Session utilisateur de : " + Environment.UserName);
                    LogStream.WriteLine("Connexion base de données PrestaConnect : " + Properties.Settings.Default.PRESTACONNECTConnectionString);
                    LogStream.WriteLine("Connexion base de données Sage : " + Properties.Settings.Default.SAGEConnectionString);
                    LogStream.WriteLine("Connexion ODBC Sage : " + Properties.Settings.Default.SAGEDSN + " - " + Properties.Settings.Default.SAGEUSER);
                    LogStream.WriteLine("");
                    LogStream.WriteLine("--------------------------------------------------------");
                    LogStream.WriteLine("");

                    foreach (String line in log_in)
                    {
                        if (line == LogLineSeparator)
                        {
                            LogStream.WriteLine("");
                            LogStream.WriteLine("--------------------------------------------------------");
                            LogStream.WriteLine("");
                        }
                        else
                        {
                            LogStream.WriteLine(line);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Core.Log.WriteLog(ex.ToString(), true);
                Core.Log.WriteLog(LogIdentifier.ToString(), false);
                foreach (String line in log_in)
                {
                    Core.Log.WriteLog(line, true);
                }
            }
            CloseLog(LogStreamType.LogStream);
        }
Exemplo n.º 2
0
        public static void SendLog(List <String> log, LogIdentifier LogType)
        {
            if (log.Count > 0)
            {
                if (Core.Global.GetConfig().TransfertSendAdminResultReport || LogType != LogIdentifier.TransfertClient)
                {
                    bool   send         = false;
                    string msg_not_send = "Compte mail administrateur invalide";
                    if (!String.IsNullOrWhiteSpace(Core.Global.GetConfig().AdminMailAddress) && Core.Global.IsMailAddress(Core.Global.GetConfig().AdminMailAddress, Parametres.RegexMail.lvl08_lUdS))
                    {
                        send = Core.Log.SendLogMail(log, Core.Global.GetConfig().AdminMailAddress, out msg_not_send, LogType);
                    }
                    if (!send)
                    {
                        log.Add(Core.Log.LogLineSeparator);
                        log.Add("PC99- Échec d'envoi du log par mail : " + msg_not_send);

                        if (Core.Global.UILaunch)
                        {
                            MessageBox.Show("Échec d'envoi du log par mail !\nLe log va être écrit dans un fichier !", "", MessageBoxButton.OK, MessageBoxImage.Error);
                        }

                        Core.Log.WriteSpecificLog(log, LogType);
                        Core.Log.OpenDirectory(LogDirectory);
                    }
                    else
                    {
                        Core.Log.WriteSpecificLog(log, LogType);
                    }
                }
                else
                {
                    Core.Log.WriteSpecificLog(log, LogType);
                    Core.Log.OpenDirectory(LogDirectory);
                }
            }
        }
Exemplo n.º 3
0
        public static Boolean SendLogMail(List <String> log_in, String Destinataire, out String MessageNotSend, LogIdentifier LogType)
        {
            Boolean send = false;

            MessageNotSend = "Compte mail expéditeur invalide";
            try
            {
                if (Core.Global.GetConfig().ConfigMailActive)
                {
                    String  User     = Core.Global.GetConfig().ConfigMailUser;
                    String  Password = Core.Global.GetConfig().ConfigMailPassword;
                    String  SMTP     = Core.Global.GetConfig().ConfigMailSMTP;
                    Int32   Port     = Core.Global.GetConfig().ConfigMailPort;
                    Boolean isSSL    = Core.Global.GetConfig().ConfigMailSSL;

                    if (!string.IsNullOrWhiteSpace(User)
                        //&& !string.IsNullOrWhiteSpace(Password)
                        && !string.IsNullOrWhiteSpace(SMTP))
                    {
                        MailMessage ObjMessage    = new MailMessage();
                        MailAddress ObjAdrExp     = new MailAddress(User);
                        MailAddress ObjAdrRec     = new MailAddress(Destinataire);
                        SmtpClient  ObjSmtpClient = new SmtpClient(SMTP, Port);

                        ObjMessage.From = ObjAdrExp;
                        ObjMessage.To.Add(ObjAdrRec);

                        String subject = "Log PrestaConnect", title = string.Empty;

                        switch (LogType)
                        {
                        case LogIdentifier.TransfertClient:
                            subject = "Log de transfert des comptes clients Sage vers Prestashop";
                            break;

                        case LogIdentifier.ImportAutoCatalog:
                            subject = "Import automatique des catalogues Sage";
                            break;

                        case LogIdentifier.ImportAutoArticle:
                            subject = "Import automatique des articles Sage";
                            break;

                        case LogIdentifier.ImportAutoImage:
                            subject = "Import automatique d'images";
                            break;

                        case LogIdentifier.ImportAutoDocument:
                            subject = "Import automatique de documents";
                            break;

                        case LogIdentifier.ImportAutoSageMedia:
                            subject = "Import automatique de médias Sage";
                            break;

                        case LogIdentifier.SynchroGroupCatTarif:
                            subject = "Synchronisation groupe/catégorie tarifaire";
                            break;

                        case LogIdentifier.GestionStatutArticle:
                            subject = "Gestion des statuts articles";
                            break;

                        case LogIdentifier.SynchroClient:
                            subject = "Synchronisation client";
                            break;

                        case LogIdentifier.ChronoSynchroStockPrice:
                            subject = "Temps de traitement synchronisation Stock et Prix";
                            break;

                        case LogIdentifier.ImportAutoStatInfoLibreArticle:
                            subject = "Import des valeurs de caractéristiques depuis Sage";
                            break;

                        case LogIdentifier.SynchroEncoursClient:
                            subject = "Synchronisation des encours client";
                            break;

                        case LogIdentifier.ImportPrestashopCaracteristiqueArticle:
                            subject = "Import des valeurs de caractéristiques depuis PrestaShop";
                            break;

                        case LogIdentifier.TransfertPrestashopCaracteristique:
                            subject = "Transfert des caractéristiques vers Prestashop";
                            break;
                        }

                        title = subject;
                        ObjMessage.Subject = subject;

                        StringBuilder Body = new StringBuilder();
                        Body.Append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">");
                        Body.Append("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
                        Body.Append("<head>");
                        Body.Append("<meta http-equiv=\"content-type\" content=\"text/html\"; charset=UTF-8\" />");
                        title += ". PRESTACONNECT version " + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
                        Body.Append("<title>" + title + "</title>");
                        Body.Append("</head>");
                        Body.Append("<body>");
                        Body.Append(title);
                        Body.Append("<br />");
                        Body.Append("Informations de connexion :<br />");
                        Body.Append("<ul>");
                        Body.Append("<li>" + "Serveur d'exécution : " + Environment.MachineName + "</li>");
                        Body.Append("<li>" + "Domaine réseau : " + Environment.UserDomainName + "</li>");
                        Body.Append("<li>" + "Session utilisateur de : " + Environment.UserName + "</li>");
                        Body.Append("<li>" + "Connexion base de données PrestaConnect : " + Properties.Settings.Default.PRESTACONNECTConnectionString + "</li>");
                        Body.Append("<li>" + "Connexion base de données Sage : " + Properties.Settings.Default.SAGEConnectionString + "</li>");
                        Body.Append("<li>" + "Connexion ODBC Sage : " + Properties.Settings.Default.SAGEDSN + " - " + Properties.Settings.Default.SAGEUSER.Replace("<", "&lt;").Replace(">", "&gt;") + "</li>");
                        Body.Append("</ul>");
                        Body.Append("<br />");
                        foreach (String str in log_in)
                        {
                            Body.Append("<br />" + str);
                        }
                        Body.Append("</body>");
                        Body.Append("</html>");

                        ObjMessage.Body           = Body.ToString();
                        ObjMessage.IsBodyHtml     = true;
                        ObjSmtpClient.EnableSsl   = isSSL;
                        ObjSmtpClient.Credentials = new NetworkCredential(User, Password);
                        ObjSmtpClient.Send(ObjMessage);
                        send = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageNotSend = ex.Message;
                Core.Error.SendMailError(ex.ToString());
            }
            return(send);
        }