MesQuestion() public static method

Запись в лог с типом вопрос, запись времени опциональна
public static MesQuestion ( string text, bool addTimeStamp = true ) : void
text string Текст, который будет записан в лог
addTimeStamp bool Добавить дату и время к записи, true - добавить, false - не добавлять
return void
Example #1
0
 /// <summary>
 /// Метод выполняет последовательно действия, переданные в него коллекцией.
 /// В зависимости от значения cbDebugMode, метод завершает текущее действие и переходит к следующему при появлении исключения,
 /// либо останавливается на исключении.
 /// </summary>
 /// <param name="TestCases">Список действий (методов) для последовательного выполнения. Методы не должны возвращать значение</param>
 public static void Execute(List <Action> TestCases)
 {
     foreach (Action TestCase in TestCases)
     {
         try
         {
             TestCase.Invoke();
         }
         catch (OpenQA.Selenium.UnhandledAlertException)
         {
             Log.MesQuestion("неожиданное модальное окно. <a href=\"" + ScreenCapture.Printscreen() + "\">скриншот</a>");
             BitrixFramework.Wait(5);
             BitrixFramework.BrowserAlert(false);
             Log.NodeClose();
         }
         catch (WebException e)
         {
             Log.MesError("Словили Вэб-эксепшен =( Видимо отвалился вебдрайвер.\r\n" + e.Message + "\r\n" + e.StackTrace +
                          "\r\nStatus Code : " + ((HttpWebResponse)e.Response).StatusCode +
                          "\r\nStatus Description : " + ((HttpWebResponse)e.Response).StatusDescription);
             Log.NodeClose();
         }
         catch (OpenQA.Selenium.WebDriverException e)
         {
             Log.MesError("Словили Вэб-эксепшен =( \r\n" + e.Message + "\r\n" + e.StackTrace);
             BitrixFramework.Refresh();
             Log.NodeClose();
         }
         catch (Exception Ex)
         {
             Log.MesError(Ex.Message + "\r\n" + Ex.StackTrace);
             Log.NodeClose();
         }
     }
 }
Example #2
0
 /// <summary>
 /// Метод осуществляет валидацию условия Condidtion, возвращая bool результат, а также опционально пишет сообщения в лог
 /// </summary>
 /// <param name="Condition"> Условие для проверки</param>
 /// <param name="MessagePass"> Сообщение при выполнении условия (опционально)</param>
 /// <param name="MessageFail"> Сообщение при невыполнении условия (опционально)</param>
 /// <param name="MessageQuestion"> Сообщение с типом вопрос (опционально)</param>
 /// <returns> true усли условие выполнено, иначе - false</returns>
 public static bool Validate(bool Condition, string MessagePass = "", string MessageFail = "", string MessageQuestion = "")
 {
     try
     {
         if (Condition)
         {
             if (MessagePass != "")
             {
                 Log.MesPass(MessagePass);
             }
             return(true);
         }
         else
         {
             if (MessageFail != "")
             {
                 Log.MesError(MessageFail);
             }
             if (MessageQuestion != "")
             {
                 Log.MesQuestion(MessageQuestion);
             }
             return(false);
         }
     }
     catch (Exception ex)
     {
         Log.MesError("При проверке условия возникла ошибка:" + ex.Message);
         throw;
     }
 }
Example #3
0
        /// <summary>
        /// Метод реализует выполнение запросов к базе mysql
        /// </summary>
        /// <param name="edition">Редакция</param>
        /// <param name="DBType">Тип базы</param>
        /// <param name="query">SQL запрос</param>
        /// <returns>Результат выполнения запроса</returns>
        public static string mysqlQuery(string edition, string DBType, string query)
        {
            string result           = null;
            string ConnectionString = null;

            ConnectionString = "SERVER=" + Options.GetOption("/Options/ConnectionString/mysql") + ";" +
                               "port=" + Options.GetOption("/Options/ConnectionString/mysql_port") + ";" +
                               "DATABASE=" + GetDBname(edition, DBType) + ";" +
                               "UID=root;" +
                               "PASSWORD=;";
            using (MySqlConnection connection = new MySqlConnection(ConnectionString))
            {
                using (MySqlCommand command = connection.CreateCommand())
                {
                    command.CommandText = query;
                    connection.Open();

                    var results = new List <string>();
                    using (MySqlDataReader Reader = command.ExecuteReader())
                    {
                        bool first = true;

                        while (Reader.Read())
                        {
                            var sb = new StringBuilder();
                            for (int i = 0; i < Reader.FieldCount; i++)
                            {
                                sb.AppendLine(Reader.GetValue(i).ToString());
                            }
                            results.Add(sb.ToString());

                            if (first)
                            {
                                result = Reader.GetValue(0).ToString();
                                first  = false;
                            }
                        }
                    }

                    if (results.Count > 1)
                    {
                        string Return = null;
                        foreach (var r in results)
                        {
                            Return = Return + r + " ";
                        }
                        string spanID = DateTime.Now.Ticks.ToString();
                        Log.MesQuestion("<div style=\"margin: 0px 0px 0px 50px;\"><font size=\"2\" face=\"Verdana\"><a class=\"plus\"" +
                                        " href=\"\" onclick=\"return collapse('" + spanID + "', this)\">" + "Результат выполнения запроса " + query + " содержит больше чем одно поле. Все поля: " +
                                        " </a></font></div><br><span style=\"display:none;\" id=\"" + spanID + "\">" + Return);
                    }
                }
                connection.Close();
            }
            return(result);
        }
Example #4
0
 /// <summary>
 /// Удаляет все письма с сервера.
 /// </summary>
 /// <param name="Login">Логин</param>
 /// <param name="Password">Пароль</param>
 /// <param name="Server">POP3 сервер</param>
 /// <param name="Port">порт</param>
 /// <param name="UseSSL">использовать или нет SSL</param>
 public static void DeleteAllEmails(string Login, string Password, string Server, int Port, bool UseSSL)
 {
     using (Pop3Client client = new Pop3Client())
     {
         client.Connect(Server, Port, UseSSL);
         client.Authenticate(Login, Password, AuthenticationMethod.UsernameAndPassword);
         try
         {
             client.DeleteAllMessages();
         }
         catch (OpenPop.Pop3.Exceptions.PopServerException ex)
         {
             Log.MesQuestion("Скорее всего превышено количество запросов");
             Log.MesQuestion(ex.Message);
         }
     }
 }
Example #5
0
        /// <summary>
        /// Проверка, содержит ли письмо вложение
        /// </summary>
        /// <param name="hostname">Сервер</param>
        /// <param name="port">Порт</param>
        /// <param name="useSsl">Исользовать ли SSL</param>
        /// <param name="userEmail">Логин</param>
        /// <param name="Password">Пароль</param>
        /// <param name="Subject">Тема письма</param>
        /// <param name="AttachmentName">Имя вложения</param>
        /// <returns>Вложение</returns>
        public static bool GetAttachmentMsg(string hostname, int port, bool useSsl, string userEmail, string Password, string Subject, string AttachmentName)
        {
            try
            {
                using (Pop3Client client = new Pop3Client())
                {
                    client.Connect(hostname, port, useSsl);
                    client.Authenticate(userEmail, Password);

                    int messageCount = client.GetMessageCount();
                    List <OpenPop.Mime.Message> allMessages = new List <OpenPop.Mime.Message>(messageCount);

                    Regex rgx = new Regex(Subject, RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.CultureInvariant);

                    for (int i = 1; i <= messageCount; i++)
                    {
                        Match match = rgx.Match(client.GetMessage(i).Headers.Subject);
                        //проверяем тему письма, если та что нам надо,ищем вложение
                        if (match.Success)
                        {
                            foreach (MessagePart Attachment in client.GetMessage(i).FindAllAttachments())
                            {
                                if (Attachment.FileName == AttachmentName.Split('\\')[AttachmentName.Split('\\').Length - 1])
                                {
                                    return(true);
                                }
                            }
                        }
                    }
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Log.MesQuestion("Скорее всего превышено количество запросов");
                Log.MesQuestion(ex.Message);
                return(false);
            }
        }
Example #6
0
        /// <summary>
        /// Получаем текст из первого письма.
        /// </summary>
        /// <param name="hostname">Сервер</param>
        /// <param name="port">Порт</param>
        /// <param name="useSsl">Использовать SSL</param>
        /// <param name="userEmail">email на который стучимся</param>
        /// <param name="Password">пароль</param>
        /// <returns>текст письма</returns>
        public static string GetYandexTextFirstMsg(string userEmail, string Password, string hostname = "pop.yandex.ru", int port = 995, bool useSsl = true)
        {
            if (userEmail.Contains("@"))
            {
                userEmail = userEmail.Substring(0, userEmail.IndexOf("@"));
            }

            string text = "";

            try
            {
                using (

                    Pop3Client client = new Pop3Client())
                {
                    client.Connect(hostname, port, useSsl);
                    client.Authenticate(userEmail, Password);
                    int     messageCount = client.GetMessageCount();
                    Message msg          = client.GetMessage(1);
                    if (messageCount != 0)
                    {
                        //если письмо типа текст
                        MessagePart plainText = msg.FindFirstPlainTextVersion();
                        if (plainText != null)
                        {
                            text = plainText.GetBodyAsText();
                        }
                    }
                    return(text);
                }
            }
            catch (Exception ex)
            {
                Log.MesQuestion("Скорее всего превышено количество запросов");
                Log.MesQuestion(ex.Message);
                return("_");
            }
        }
Example #7
0
        /// <summary>
        /// Копирует директорию в другую директорию с подкаталогами и файлами
        /// </summary>
        /// <param name="sourceDirName">Исходная директория</param>
        /// <param name="destDirName">Целевая директория</param>
        /// <param name="Overwrite">Перезаписывать ли файлы (по умолчанию - перезаписывать)</param>
        public static void DirectoryCopy(string sourceDirName, string destDirName, bool Overwrite = true)
        {
            DirectoryInfo dir = new DirectoryInfo(sourceDirName);

            DirectoryInfo[] dirs = dir.GetDirectories();
            if (!dir.Exists)
            {
                Log.MesQuestion("Нет исходной директории");
                return;
            }
            if (!Directory.Exists(destDirName))
            {
                Directory.CreateDirectory(destDirName);
            }
            foreach (FileInfo file in dir.GetFiles())
            {
                string temppath = Path.Combine(destDirName, file.Name);
                file.CopyTo(temppath, Overwrite);
            }
            foreach (DirectoryInfo subdir in dirs)
            {
                DirectoryCopy(subdir.FullName, Path.Combine(destDirName, subdir.Name), Overwrite);
            }
        }
Example #8
0
        /// <summary>
        /// Получаем текст из письма.
        /// </summary>
        /// <param name="hostname">Сервер</param>
        /// <param name="port">Порт</param>
        /// <param name="useSsl">Использовать SSL</param>
        /// <param name="userEmail">email на который стучимся</param>
        /// <param name="Password">пароль</param>
        /// <param name="Subject">Тема письма, которое нужно прочитать</param>
        /// <param name="isEqual">Признак абсолютного соответствия темы</param>
        /// <returns>текст письма</returns>
        public static string GetTextMsg(string hostname, int port, bool useSsl, string userEmail, string Password, string Subject, bool isEqual = false)
        {
            string text = "";

            try
            {
                using (

                    Pop3Client client = new Pop3Client())
                {
                    client.Connect(hostname, port, useSsl);
                    client.Authenticate(userEmail, Password);

                    int messageCount = client.GetMessageCount();
                    List <OpenPop.Mime.Message> allMessages = new List <OpenPop.Mime.Message>(messageCount);

                    Regex rgx = new Regex(Subject, RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.CultureInvariant);

                    for (int i = 1; i <= messageCount; i++)
                    {
                        Match  match = rgx.Match(client.GetMessage(i).Headers.Subject);
                        string s     = client.GetMessage(i).Headers.Subject;
                        //проверяем тему письма, если та что нам надо, добавляем письмо в список писем
                        if (isEqual)
                        {
                            if (client.GetMessage(i).Headers.Subject == Subject)
                            {
                                allMessages.Add(client.GetMessage(i));
                            }
                        }
                        else
                        {
                            if (match.Success)
                            {
                                allMessages.Add(client.GetMessage(i));
                            }
                        }
                    }

                    if (allMessages.Count != 0)
                    {
                        //если письмо типа текст
                        MessagePart plainText = allMessages[0].FindFirstPlainTextVersion();
                        if (plainText != null)
                        {
                            text = plainText.GetBodyAsText();
                        }

                        //если письмо типа HTML
                        MessagePart plainHTML = allMessages[0].FindFirstHtmlVersion();
                        if (plainHTML != null)
                        {
                            text = plainHTML.GetBodyAsText();
                        }
                    }
                    return(text);
                }
            }
            catch (Exception ex)
            {
                Log.MesQuestion("Скорее всего превышено количество запросов");
                Log.MesQuestion(ex.Message);
                return("_");
            }
        }