예제 #1
0
파일: Checking.cs 프로젝트: slagovskiy/psa
        public static bool checkVersion(Modules Module, string version)
        {
            bool ret = false;
            try
            {
                Settings sett = new Settings();
                ftpClient ftp = new ftpClient(sett.FTP_Server, sett.FTP_User, sett.FTP_Password);
                foreach(String file in ftp.GetFileList(sett.FTP_Path))
                {
                    if(file == "info.version")
                    {
                        ftp.Download(Environment.GetEnvironmentVariable("TEMP"), "info.version", sett.FTP_Path, "info.version");
                        ini ver = new ini(Environment.GetEnvironmentVariable("TEMP") + "\\info.version");
                        switch(Module)
                        {
                            case Modules.Acceptance:
                                {
                                    if (ver.IniReadValue("version", "Acceptance", "0").Trim() != version)
                                        ret = false;
                                    else
                                        ret = true;
                                    break;
                                }
                            case Modules.Administrator:
                                {
                                    if (ver.IniReadValue("version", "Administrator", "0").Trim() != version)
                                        ret = false;
                                    else
                                        ret = true;
                                    break;
                                }
                            case Modules.Designer:
                                {
                                    if (ver.IniReadValue("version", "Designer", "0").Trim() != version)
                                        ret = false;
                                    else
                                        ret = true;
                                    break;
                                }
                            case Modules.Operator:
                                {
                                    if (ver.IniReadValue("version", "Operator", "0").Trim() != version)
                                        ret = false;
                                    else
                                        ret = true;
                                    break;
                                }
                            case Modules.Robot:
                                {
                                    if (ver.IniReadValue("version", "Robot", "0").Trim() != version)
                                        ret = false;
                                    else
                                        ret = true;
                                    break;
                                }
                            case Modules.Inventory:
                                {
                                    if (ver.IniReadValue("version", "Inventory", "0").Trim() != version)
                                        ret = false;
                                    else
                                        ret = true;
                                    break;
                                }
                            case Modules.Kiosk:
                                {
                                    if (ver.IniReadValue("version", "Kiosk", "0").Trim() != version)
                                        ret = false;
                                    else
                                        ret = true;
                                    break;
                                }
                            case Modules.Exchanger:
                                {
                                    if (ver.IniReadValue("version", "Exchanger", "0").Trim() != version)
                                        ret = false;
                                    else
                                        ret = true;
                                    break;
                                }
                            default:
                                {
                                    ret = false;
                                    break;
                                }
                        }
                    }
                }
                //ret = true;
            }
            catch (Exception ex)
            {
                ret = true;
            }
            finally
            {

            }
            return ret;
        }
예제 #2
0
        private void doImport()
        {
            try
            {
                ini iniRobot = new ini(prop.Dir_export + "\\robot.ini");
                using (SqlConnection db_connection = new SqlConnection(prop.Connection_string))
                {
                    db_connection.Open();
                    if (prop.Import_from_ftp)
                    {
                        PSA.Lib.Util.ftpClient ftp = new PSA.Lib.Util.ftpClient(prop.FTP_Server, prop.FTP_User, prop.FTP_Password);
                        string[] fileList = ftp.GetFileList(prop.FTP_Path);
                        foreach (string s in fileList)
                        {
                            try
                            {
                                if (s != "info.version")
                                {
                                    if (ftp.Download(prop.Dir_import, s, prop.FTP_Path))
                                    {
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Получен файл " + s);
                                        file.Flush();
                                        if (ftp.Delete(prop.FTP_Path + "/" + s + "\n"))
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + s + " удален с сервера");
                                            file.Flush();
                                        }
                                    }
                                }
                            }
                            catch
                            {
                            }
                        }
                    }

                    bool err = false;
                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Опрос каталога");
                    file.Flush();
                    if (Directory.Exists(prop.Dir_import))
                    {
                        DirectoryInfo dr = new DirectoryInfo(prop.Dir_import);
                        // before
                        int ibef = 0;
                        foreach (FileInfo f in dr.GetFiles("before*.sql"))
                        {
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Найден файл предварительной SQL команды " + f.Name);
                            file.Flush();
                            string query = "";
                            using (StreamReader fs = new StreamReader(f.FullName, Encoding.GetEncoding(1251)))
                            {
                                string s = "";
                                while ((s = fs.ReadLine()) != null)
                                {
                                    query += s + "\n";
                                }
                                fs.Close();
                            }
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [>] " + query);
                            file.Flush();
                            try
                            {
                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                cmd.CommandTimeout = 9000;
                                cmd.ExecuteNonQuery();
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Запрос успешно выполнен");
                                file.Flush();
                            }
                            catch (Exception ex)
                            {
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                file.Flush();
                            }
                            finally
                            {
                                f.Delete();
                            }
                            ibef++;
                        }

                        // import
                        foreach (FileInfo f in dr.GetFiles("*.csv"))
                        {
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Найден файл импорта " + f.Name);
                            file.Flush();
                            switch (f.Name)
                            {
                                case "mashine.csv":
                                    {
                                        // Загружаем таблицу машин
                                        // Первый тестовый проход на пригодность файла
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем иморт данных из файла " + f.Name);
                                        file.Flush();
                                        bool not_good = false;
                                        string s = "";
                                        StreamReader fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                        //StreamReader fl = f.OpenText();
                                        int pbi = 0;
                                        while ((s = fl.ReadLine()) != null)
                                        {
                                            string[] col;
                                            col = s.Split(';');
                                            if (col.Length != 4)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Найдена ошибка в структуре файла " + s);
                                                file.Flush();
                                                not_good = true;
                                                break;
                                            }
                                            pbi++;
                                        }
                                        fl.Close();

                                        if (!not_good)
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Очищаем таблицу машин операторов");
                                            file.Flush();
                                            try
                                            {
                                                string query = "DELETE FROM [mashine]";
                                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                            }
                                            catch (Exception ex)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                file.Flush();
                                            }
                                            s = "";
                                            fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                            while ((s = fl.ReadLine()) != null)
                                            {
                                                try
                                                {
                                                    string[] col;
                                                    col = s.Split(';');
                                                    string query = "INSERT INTO [mashine] ([id_mashine], [del], [mashine], [sklad]) VALUES ('{<ID>}', {<DEL>}, '{<MASHINE>}', '{<SKLAD>}')";
                                                    query = query.Replace("{<ID>}", col[0]);
                                                    query = query.Replace("{<DEL>}", col[1]);
                                                    query = query.Replace("{<MASHINE>}", col[2]);
                                                    query = query.Replace("{<SKLAD>}", col[3]);
                                                    SqlCommand cmd = new SqlCommand(query, db_connection);
                                                    cmd.CommandTimeout = 9000;
                                                    cmd.ExecuteNonQuery();
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                            fl.Close();
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Импорт завершен");
                                            file.Flush();
                                        }
                                        else
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] При проверке структуры файла " + f.Name +
                                                           "были найдены ошибки, импорт этого справочника не будет производится");
                                            file.Flush();
                                        }
                                        iniRobot.IniWriteValue("import", "mashine", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                                        break;
                                    }
                                case "place.csv":
                                    {
                                        // Загружаем таблицу исполнителей
                                        // Первый тестовый проход на пригодность файла
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем иморт данных из файла " + f.Name);
                                        file.Flush();
                                        bool not_good = false;
                                        string s = "";
                                        StreamReader fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                        int pbi = 0;
                                        while ((s = fl.ReadLine()) != null)
                                        {
                                            string[] col;
                                            col = s.Split(';');
                                            if (col.Length != 7)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Найдена ошибка в структуре файла " + s);
                                                file.Flush();
                                                not_good = true;
                                                break;
                                            }
                                            pbi++;
                                        }
                                        fl.Close();

                                        if (!not_good)
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Очищаем таблицу исполнителей");
                                            file.Flush();
                                            try
                                            {
                                                string query = "DELETE FROM [place]";
                                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                            }
                                            catch (Exception ex)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                file.Flush();
                                            }
                                            s = "";
                                            fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                            while ((s = fl.ReadLine()) != null)
                                            {
                                                try
                                                {
                                                    string[] col;
                                                    col = s.Split(';');
                                                    string query = "INSERT INTO [place] ([id_place], [name], [del], [server], [path], [username], [password]) VALUES ('{<ID>}', '{<NAME>}', '{<DEL>}', '{<SERVER>}', '{<PATH>}', '{<USER>}', '{<PASSWORD>}')";
                                                    query = query.Replace("{<ID>}", col[0]);
                                                    query = query.Replace("{<NAME>}", col[1]);
                                                    query = query.Replace("{<DEL>}", col[2]);
                                                    query = query.Replace("{<SERVER>}", col[3].Replace(",", "."));
                                                    query = query.Replace("{<PATH>}", col[4]);
                                                    query = query.Replace("{<USER>}", col[5]);
                                                    query = query.Replace("{<PASSWORD>}", col[6]);
                                                    SqlCommand cmd = new SqlCommand(query, db_connection);
                                                    cmd.CommandTimeout = 9000;
                                                    cmd.ExecuteNonQuery();
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                            fl.Close();
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Импорт завершен");
                                        }
                                        else
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] При проверке структуры файла " + f.Name +
                                                           "были найдены ошибки, импорт этого справочника не будет производится");
                                            file.Flush();
                                        }
                                        iniRobot.IniWriteValue("import", "place", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                                        break;
                                    }
                                case "material.csv":
                                    {
                                        // Загружаем таблицу материалов
                                        // Первый тестовый проход на пригодность файла
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем иморт данных из файла " + f.Name);
                                        file.Flush();
                                        bool not_good = false;
                                        string s = "";
                                        StreamReader fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                        int pbi = 0;
                                        while ((s = fl.ReadLine()) != null)
                                        {
                                            string[] col;
                                            col = s.Split(';');
                                            if (col.Length != 5)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Найдена ошибка в структуре файла " + s);
                                                file.Flush();
                                                not_good = true;
                                                break;
                                            }
                                            pbi++;
                                        }
                                        fl.Close();

                                        if (!not_good)
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Очищаем таблицу материалов");
                                            file.Flush();
                                            try
                                            {
                                                string query = "DELETE FROM [material]";
                                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                            }
                                            catch (Exception ex)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                file.Flush();
                                            }
                                            s = "";
                                            fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                            while ((s = fl.ReadLine()) != null)
                                            {
                                                try
                                                {
                                                    string[] col;
                                                    col = s.Split(';');
                                                    string query = "INSERT INTO [material] ([id_material], [del], [material], [remainder], [sklad]) VALUES ('{<ID>}', {<DEL>}, '{<MATERIAL>}', {<REMAINDER>}, '{<SKLAD>}')";
                                                    query = query.Replace("{<ID>}", col[0]);
                                                    query = query.Replace("{<DEL>}", col[1]);
                                                    query = query.Replace("{<MATERIAL>}", col[2]);
                                                    query = query.Replace("{<REMAINDER>}", col[3].Replace(",", "."));
                                                    query = query.Replace("{<SKLAD>}", col[4]);
                                                    SqlCommand cmd = new SqlCommand(query, db_connection);
                                                    cmd.CommandTimeout = 9000;
                                                    cmd.ExecuteNonQuery();
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                            fl.Close();
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Импорт завершен");
                                        }
                                        else
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] При проверке структуры файла " + f.Name +
                                                           "были найдены ошибки, импорт этого справочника не будет производится");
                                            file.Flush();
                                        }
                                        iniRobot.IniWriteValue("import", "material", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                                        break;
                                    }
                                case "good.csv":
                                    {
                                        // Загружаем таблицу товаров
                                        // Первый тестовый проход на пригодность файла
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем иморт данных из файла " + f.Name);
                                        file.Flush();
                                        bool not_good = false;
                                        string s = "";
                                        StreamReader fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                        int pbi = 0;
                                        while ((s = fl.ReadLine()) != null)
                                        {
                                            string[] col;
                                            col = s.Split(';');
                                            if (col.Length != 15)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Найдена ошибка в структуре файла" + s);
                                                file.Flush();
                                                not_good = true;
                                                break;
                                            }
                                            pbi++;
                                        }
                                        fl.Close();

                                        if (!not_good)
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Очищаем таблицу товаров и услуг");
                                            file.Flush();
                                            try
                                            {
                                                string query = "DELETE FROM [good]";
                                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                            }
                                            catch (Exception ex)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                file.Flush();
                                            }
                                            s = "";
                                            fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                            while ((s = fl.ReadLine()) != null)
                                            {
                                                try
                                                {
                                                    string[] col;
                                                    col = s.Split(';');
                                                    string query = "INSERT INTO [good] ([id_good], [guid], [del], [name], [description], [prefix], [folder], [type], [checked], [sign], [apply_form], [EI], [zero], [bonustype], [kiosk_name]) VALUES ('{<ID>}', '{<GUID>}', {<DEL>}, '{<NAME>}', '{<DESCRIPTION>}', '{<PREFIX>}', '{<FOLDER>}', '{<TYPE>}', {<CHECKED>}, '{<SIGN>}', '{<APPLYFORM>}', {<EI>}, {<ZERO_PRICE>}, '{<BONUSTYPE>}', '{<KIOSK_NAME>}')";

                                                    query = query.Replace("{<ID>}", col[0]);
                                                    query = query.Replace("{<GUID>}", col[1]);
                                                    query = query.Replace("{<DEL>}", col[2]);
                                                    query = query.Replace("{<NAME>}", col[3]);
                                                    query = query.Replace("{<DESCRIPTION>}", col[4]);
                                                    query = query.Replace("{<PREFIX>}", col[5]);
                                                    query = query.Replace("{<FOLDER>}", col[6]);
                                                    query = query.Replace("{<TYPE>}", col[7]);
                                                    if (col[8] == "True")
                                                        query = query.Replace("{<CHECKED>}", "1");
                                                    else
                                                        query = query.Replace("{<CHECKED>}", "0");
                                                    query = query.Replace("{<SIGN>}", col[9]);
                                                    query = query.Replace("{<APPLYFORM>}", col[10]);
                                                    query = query.Replace("{<EI>}", col[11].Replace(",", "."));
                                                    if (col[12] == "True")
                                                        query = query.Replace("{<ZERO_PRICE>}", "1");
                                                    else
                                                        query = query.Replace("{<ZERO_PRICE>}", "0");
                                                    query = query.Replace("{<BONUSTYPE>}", col[13]);
                                                    query = query.Replace("{<KIOSK_NAME>}", col[14]);
                                                    SqlCommand cmd = new SqlCommand(query, db_connection);
                                                    cmd.CommandTimeout = 9000;
                                                    cmd.ExecuteNonQuery();
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                            fl.Close();
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Импорт завершен");
                                            file.Flush();
                                        }
                                        else
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + "[!] При проверке структуры файла " + f.Name +
                                                           "были найдены ошибки, импорт этого справочника не будет производится");
                                            file.Flush();
                                        }
                                        iniRobot.IniWriteValue("import", "good", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                                        break;
                                    }
                                case "price.csv":
                                    {
                                        // Загружаем таблицу товаров
                                        // Первый тестовый проход на пригодность файла
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем иморт данных из файла " + f.Name);
                                        file.Flush();
                                        bool not_good = false;
                                        string s = "";
                                        StreamReader fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                        int pbi = 0;
                                        while ((s = fl.ReadLine()) != null)
                                        {
                                            string[] col;
                                            col = s.Split(';');
                                            if (col.Length != 11)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Найдена ошибка в структуре файла" + s);
                                                file.Flush();
                                                not_good = true;
                                                break;
                                            }
                                            pbi++;
                                        }
                                        fl.Close();

                                        if (!not_good)
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Очищаем таблицу прайса");
                                            file.Flush();
                                            try
                                            {
                                                string query = "DELETE FROM [price]";
                                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                                cmd.ExecuteNonQuery();
                                                query = "DBCC CHECKIDENT (price, RESEED, 0)";
                                                cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                            }
                                            catch (Exception ex)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                file.Flush();
                                            }
                                            s = "";
                                            fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                            while ((s = fl.ReadLine()) != null)
                                            {
                                                try
                                                {
                                                    string[] col;
                                                    col = s.Split(';');
                                                    string query = "INSERT INTO [dbo].[price] ([id_good], [id_category], [amount], [amount2], [amount3], [threshold], [threshold2], [ondate]) VALUES ('{<IDGOOD>}', {<IDCATEGORY>}, {<AMOUNT>}, {<AMOUNT2>}, {<AMOUNT3>}, {<THRESHOLD>}, {<THRESHOLD2>}, CONVERT(DATETIME, '{<DATE>}', 102))";

                                                    query = query.Replace("{<IDGOOD>}", col[1]);
                                                    query = query.Replace("{<IDCATEGORY>}", col[2]);
                                                    query = query.Replace("{<AMOUNT>}", col[5].Replace(",", "."));
                                                    query = query.Replace("{<AMOUNT2>}", col[6].Replace(",", "."));
                                                    query = query.Replace("{<AMOUNT3>}", col[7].Replace(",", "."));
                                                    query = query.Replace("{<THRESHOLD>}", col[8].Replace(",", "."));
                                                    query = query.Replace("{<THRESHOLD2>}", col[9].Replace(",", "."));
                                                    query = query.Replace("{<DATE>}", col[10]);
                                                    SqlCommand cmd = new SqlCommand(query, db_connection);
                                                    cmd.CommandTimeout = 9000;
                                                    cmd.ExecuteNonQuery();
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                            fl.Close();
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Импорт завершен");
                                            file.Flush();
                                        }
                                        else
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] При проверке структуры файла " + f.Name +
                                                           "были найдены ошибки, импорт этого справочника не будет производится");
                                            file.Flush();
                                        }
                                        iniRobot.IniWriteValue("import", "price", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                                        break;
                                    }
                                case "category.csv":
                                    {
                                        // Загружаем таблицу категорий
                                        // Первый тестовый проход на пригодность файла
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем иморт данных из файла " + f.Name);
                                        file.Flush();
                                        bool not_good = false;
                                        string s = "";
                                        StreamReader fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                        int pbi = 0;
                                        while ((s = fl.ReadLine()) != null)
                                        {
                                            string[] col;
                                            col = s.Split(';');
                                            if (col.Length != 5)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Найдена ошибка в структуре файла" + s);
                                                file.Flush();
                                                not_good = true;
                                                break;
                                            }
                                            pbi++;
                                        }
                                        fl.Close();

                                        if (!not_good)
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Очищаем таблицу категорий и услуг");
                                            file.Flush();
                                            try
                                            {
                                                string query = "DELETE FROM [category]";
                                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                            }
                                            catch (Exception ex)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                file.Flush();
                                            }
                                            s = "";
                                            fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                            while ((s = fl.ReadLine()) != null)
                                            {
                                                try
                                                {
                                                    string[] col;
                                                    col = s.Split(';');
                                                    string query = "INSERT INTO [dbo].[category] ([id_category], [del], [name], [input]) VALUES ({<ID>}, {<DEL>}, '{<NAME>}', {<INPUT>})";

                                                    query = query.Replace("{<ID>}", col[0]);
                                                    query = query.Replace("{<DEL>}", col[2]);
                                                    query = query.Replace("{<NAME>}", col[3]);
                                                    query = query.Replace("{<INPUT>}", col[4]);
                                                    SqlCommand cmd = new SqlCommand(query, db_connection);
                                                    cmd.CommandTimeout = 9000;
                                                    cmd.ExecuteNonQuery();
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                            fl.Close();
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Импорт завершен");
                                            file.Flush();
                                        }
                                        else
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] При проверке структуры файла " + f.Name +
                                                           "были найдены ошибки, импорт этого справочника не будет производится");
                                            file.Flush();
                                        }
                                        iniRobot.IniWriteValue("import", "category", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                                        break;
                                    }
                                case "ptype.csv":
                                    {
                                        // Загружаем таблицу карт
                                        // Первый тестовый проход на пригодность файла
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем иморт данных из файла " + f.Name);
                                        file.Flush();
                                        bool not_good = false;
                                        string s = "";
                                        StreamReader fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                        int pbi = 0;
                                        while ((s = fl.ReadLine()) != null)
                                        {
                                            string[] col;
                                            col = s.Split(';');
                                            if (col.Length != 3)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Найдена ошибка в структуре файла" + s);
                                                file.Flush();
                                                not_good = true;
                                                break;
                                            }
                                            pbi++;
                                        }
                                        fl.Close();

                                        if (!not_good)
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Очищаем таблицу типов оплаты");
                                            file.Flush();
                                            try
                                            {
                                                string query = "DELETE FROM [ptype]";
                                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                            }
                                            catch (Exception ex)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                file.Flush();
                                            }
                                            s = "";
                                            fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                            while ((s = fl.ReadLine()) != null)
                                            {
                                                try
                                                {
                                                    string[] col;
                                                    col = s.Split(';');
                                                    string query = "INSERT INTO [dbo].[ptype] ([id_ptype], [name_ptype], [del]) VALUES ({<ID>}, '{<NAME>}', {<DEL>})";
                                                    query = query.Replace("{<ID>}", col[0]);
                                                    query = query.Replace("{<NAME>}", col[1]);
                                                    query = query.Replace("{<DEL>}", col[2]);
                                                    SqlCommand cmd = new SqlCommand(query, db_connection);
                                                    cmd.CommandTimeout = 9000;
                                                    cmd.ExecuteNonQuery();
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                            fl.Close();
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Импорт завершен");
                                            file.Flush();
                                        }
                                        else
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] При проверке структуры файла " + f.Name +
                                                           "были найдены ошибки, импорт этого справочника не будет производится");
                                            file.Flush();
                                        }
                                        iniRobot.IniWriteValue("import", "ptype", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                                        break;
                                    }
                                case "dcard.csv":
                                    {
                                        // Загружаем таблицу дисконтных карт
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем иморт данных из файла " + f.Name);
                                        file.Flush();
                                        // Первый тестовый проход на пригодность файла
                                        bool not_good = false;
                                        string s = "";
                                        StreamReader fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                        int pbi = 0;
                                        while ((s = fl.ReadLine()) != null)
                                        {
                                            string[] col;
                                            col = s.Split(';');
                                            if (col.Length != 8)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Найдена ошибка в структуре файла" + s);
                                                file.Flush();
                                                not_good = true;
                                                break;
                                            }
                                            pbi++;
                                        }
                                        fl.Close();

                                        if (!not_good)
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Очищаем таблицу дисконтных карт");
                                            file.Flush();
                                            try
                                            {
                                                string query = "DELETE FROM [dcard]";
                                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                                query = "DBCC CHECKIDENT ([dcard], RESEED, 0)";
                                                cmd = new SqlCommand(query, db_connection);
                                                cmd.CommandTimeout = 9000;
                                                cmd.ExecuteNonQuery();
                                            }
                                            catch (Exception ex)
                                            {
                                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                file.Flush();
                                            }
                                            s = "";
                                            fl = new StreamReader(f.FullName, System.Text.Encoding.GetEncoding(1251));
                                            while ((s = fl.ReadLine()) != null)
                                            {
                                                try
                                                {
                                                    string[] col;
                                                    col = s.Split(';');
                                                    string query = "INSERT INTO [dcard] ([code], [name], [disc], [discserv], [phone], [email], [bonus], [typebonus]) VALUES ('{<CODE>}', '{<NAME>}', {<DISC>}, {<DISCSERV>}, '{<PHONE>}', '{<EMAIL>}', {<BONUS>}, '{<TYPEBONUS>}')";
                                                    query = query.Replace("{<CODE>}", col[0]);
                                                    query = query.Replace("{<NAME>}", col[1]);
                                                    query = query.Replace("{<DISC>}", col[2].Replace(",", "."));
                                                    query = query.Replace("{<DISCSERV>}", col[3].Replace(",", "."));
                                                    query = query.Replace("{<PHONE>}", col[4]);
                                                    query = query.Replace("{<EMAIL>}", col[5]);
                                                    query = query.Replace("{<BONUS>}", col[6]);
                                                    query = query.Replace("{<TYPEBONUS>}", col[7]);
                                                    SqlCommand cmd = new SqlCommand(query, db_connection);
                                                    cmd.CommandTimeout = 9000;
                                                    cmd.ExecuteNonQuery();
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                            fl.Close();
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Импорт завершен");
                                            file.Flush();
                                        }
                                        else
                                        {
                                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] При проверке структуры файла " + f.Name +
                                                           "были найдены ошибки, импорт этого справочника не будет производится");
                                            file.Flush();
                                        }
                                        iniRobot.IniWriteValue("import", "dcard", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                                        break;
                                    }
                            }
                            f.Delete();
                        }

                        // after
                        int iaft = 0;
                        foreach (FileInfo f in dr.GetFiles("after*.sql"))
                        {
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Найден файл заключительной SQL команды " + f.Name);
                            file.Flush();
                            string query = "";
                            using (StreamReader fs = new StreamReader(f.FullName, Encoding.GetEncoding(1251)))
                            {
                                //byte[] buf = new byte[1];
                                //ASCIIEncoding t = new ASCIIEncoding();
                                //UTF8Encoding t = new UTF8Encoding(true);
                                string s = "";
                                while ((s = fs.ReadLine()) != null)
                                {
                                    query += s + "\n";
                                }
                                fs.Close();
                            }
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [>] " + query);
                            file.Flush();
                            try
                            {
                                SqlCommand cmd = new SqlCommand(query, db_connection);
                                cmd.CommandTimeout = 9000;
                                cmd.ExecuteNonQuery();
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Запрос успешно выполнен");
                                file.Flush();
                            }
                            catch (Exception ex)
                            {
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                file.Flush();
                            }
                            finally
                            {
                                f.Delete();
                            }
                            iaft++;
                        }

                        foreach (FileInfo f in dr.GetFiles("getdata*.sql"))
                        {
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Найден файл экспорта из SQL команды " + f.Name);
                            file.Flush();
                            string query = "";
                            using (StreamReader fs = new StreamReader(f.FullName, Encoding.GetEncoding(1251)))
                            {
                                string s = "";
                                while ((s = fs.ReadLine()) != null)
                                {
                                    query += s + "\n";
                                }
                                fs.Close();
                            }
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [>] " + query);
                            file.Flush();
                            try
                            {
                                string csv = SQL2CSV(query);
                                if (Directory.Exists(prop.Dir_export))
                                {
                                    StreamWriter fl = new StreamWriter(prop.Dir_export + "\\" + f.Name + "." +
                                        DateTime.Now.Year.ToString("D4") + "_" + DateTime.Now.Month.ToString("D2") + "_" +
                                        DateTime.Now.Day.ToString("D2") + "_" + DateTime.Now.Hour.ToString("D2") + "_" +
                                        DateTime.Now.Minute.ToString("D2") + "_" + DateTime.Now.Second.ToString("D2") +
                                        ".csv", true, Encoding.GetEncoding(1251));
                                    fl.Write(csv);
                                    fl.Close();
                                }
                            }
                            catch (Exception ex)
                            {
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка выполнения запроса " + ex.Message + "\n" + ex.Source);
                                file.Flush();
                            }
                            finally
                            {
                                f.Delete();
                            }
                            iaft++;
                        }

                    }
                    else
                    {
                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Каталог импорта не найден");
                        file.Flush();
                    }
                }
            }
            catch
            {
            }
        }