Exemple #1
0
        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;
        }
        public void doExport()
        {
            try
            {
                ini iniRobot = new ini(prop.Dir_export + "\\robot.ini");
                if (Directory.Exists(prop.Dir_export))
                {
                    CultureInfo ci = CultureInfo.InvariantCulture;
                    using (SqlConnection db_connection = new SqlConnection(prop.Connection_string))
                    {
                        string exported_order = "0";
                        string exported_orderbody = "0";
                        string exported_payment = "0";
                        string exported_discard = "0";
                        string exported_inv = "0";
                        string exported_ver = "0";
                        string exported_taction = "0";
                        string exported_counter1 = "0";
                        string exported_counter2 = "0";
                        string date = DateTime.Now.Year.ToString();
                        date += "_";
                        date += DateTime.Now.Month < 10 ? "0" + DateTime.Now.Month.ToString() : DateTime.Now.Month.ToString();
                        date += "_";
                        date += DateTime.Now.Day < 10 ? "0" + DateTime.Now.Day.ToString() : DateTime.Now.Day.ToString();
                        date += "_";
                        date += DateTime.Now.Hour < 10 ? "0" + DateTime.Now.Hour.ToString() : DateTime.Now.Hour.ToString();
                        date += "_";
                        date += DateTime.Now.Minute < 10 ? "0" + DateTime.Now.Minute.ToString() : DateTime.Now.Minute.ToString();
                        date += "_";
                        date += DateTime.Now.Second < 10 ? "0" + DateTime.Now.Second.ToString() : DateTime.Now.Second.ToString();
                        SqlCommand cmd = new SqlCommand();
                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем экспорт заказов");
                        file.Flush();
                        cmd.CommandTimeout = 9000;
                        cmd.CommandText =
                            "SELECT dbo.[order].id_order, dbo.[order].id_user_accept, dbo.[order].id_user_operator, dbo.[order].id_user_designer, dbo.[order].id_user_delivery," +
                            "dbo.[order].id_client, dbo.[order].guid, dbo.[order].del, dbo.[order].name_accept, dbo.[order].name_operator, dbo.[order].name_designer, " +
                            "dbo.[order].name_delivery, dbo.[order].status, CAST(dbo.[order].number AS nchar(15)) AS number, dbo.[order].input_date, dbo.[order].expected_date,  " +
                            "dbo.[order].output_date, dbo.[order].advanced_payment, dbo.[order].final_payment, dbo.[order].discont_percent, " +
                            "CAST(dbo.[order].discont_code AS nchar(15)) AS discont_code, dbo.[order].preview, dbo.[order].comment, dbo.[order].crop, dbo.[order].type,  " +
                            "dbo.[order].exported, dbo.client.name AS client, dbo.category.name AS category, dbo.category.id_category, dbo.[order].bonus,  " +
                            "dbo.[order].order_price AS sm, dbo.[order].ptype, dbo.client.phone_1 + ' ' + dbo.client.phone_2 " +
                            "FROM         dbo.category LEFT OUTER JOIN " +
                            "dbo.client ON dbo.category.id_category = dbo.client.id_category RIGHT OUTER JOIN " +
                            "dbo.[order] ON dbo.client.id_client = dbo.[order].id_client " +
                            "WHERE     (dbo.[order].exported = 0)";
                        cmd.Connection = db_connection;
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        DataTable t = new DataTable("order");
                        da.Fill(t);
                        if (t.Rows.Count > 0)
                        {
                            StreamWriter fl = new StreamWriter(prop.Dir_export + "\\order3_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            for (int i = 0; i < t.Rows.Count; i++)
                            {
                                exported_order += ", ";
                                fl.WriteLine("[order]");
                                fl.WriteLine(t.Rows[i][0].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][1].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][2].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][3].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][4].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][5].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][6].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][7].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][8].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][9].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][10].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][11].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][12].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][13].ToString().Trim().Replace(";", " ") + ";" +
                                             ((t.Rows[i][14].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][14]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             ((t.Rows[i][15].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][15]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             ((t.Rows[i][16].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][16]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][17].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][18].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][19].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][20].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][21].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][22].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][23].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][24].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][25].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][26].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][27].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][28].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][29].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][30].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][31].ToString().Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][32].ToString().Replace("'", "").Trim().Replace(";", " "));
                                exported_order += t.Rows[i][0].ToString();

                                SqlCommand cmdo = new SqlCommand();
                                cmdo.CommandTimeout = 9000;
                                cmdo.CommandText =
                                    "SELECT dbo.orderbody.id_orderbody, dbo.orderbody.id_order, dbo.orderbody.id_mashine, dbo.orderbody.id_material, dbo.orderbody.id_good, " +
                                    "dbo.orderbody.guid, dbo.orderbody.del, dbo.orderbody.quantity, dbo.orderbody.actual_quantity, dbo.orderbody.sign, dbo.orderbody.price, " +
                                    "dbo.orderbody.datework, ISNULL(user_1.id_user, 0) AS id_user_work, ISNULL(user_1.name, '') AS name_work, dbo.orderbody.defect_quantity, " +
                                    "ISNULL(user_2.id_user, 0) AS id_user_defect, ISNULL(user_2.name, '') AS user_defect, dbo.orderbody.tech_defect, dbo.orderbody.exported, " +
                                    "dbo.orderbody.dateadd, ISNULL(dbo.[user].id_user, 0) AS id_user_add, ISNULL(dbo.[user].name, '') AS name_add, dbo.orderbody.defect_ok,  " +
                                    "dbo.orderbody.comment " +
                                    "FROM         dbo.[user] AS user_2 RIGHT OUTER JOIN " +
                                    "dbo.orderbody ON user_2.id_user = dbo.orderbody.id_user_defect LEFT OUTER JOIN " +
                                    "dbo.[user] AS user_1 ON dbo.orderbody.id_user_work = user_1.id_user LEFT OUTER JOIN " +
                                    "dbo.[user] ON dbo.orderbody.id_user_add = dbo.[user].id_user " +
                                    "WHERE dbo.orderbody.id_order = " + t.Rows[i][0].ToString();
                                cmdo.Connection = db_connection;
                                SqlDataAdapter dao = new SqlDataAdapter(cmdo);
                                DataTable tt = new DataTable("orderbody");
                                dao.Fill(tt);
                                if (tt.Rows.Count > 0)
                                {
                                    fl.WriteLine("[orderbody]");
                                    for (int j = 0; j < tt.Rows.Count; j++)
                                    {
                                        fl.WriteLine(tt.Rows[j][0].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][1].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][2].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][3].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][4].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][5].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][6].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][7].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][8].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][9].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][10].ToString().Trim().Replace(";", " ") + ";" +
                                                     ((tt.Rows[j][11].GetType().Name == "DBNull") ? "" : ((DateTime)tt.Rows[j][11]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][12].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][13].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][14].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][15].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][16].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][17].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][18].ToString().Trim().Replace(";", " ") + ";" +
                                                     ((tt.Rows[j][19].GetType().Name == "DBNull") ? "" : ((DateTime)tt.Rows[j][19]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][20].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][21].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][22].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][23].ToString().Trim().Replace(";", " "));
                                    }
                                }

                                cmdo = new SqlCommand();
                                cmdo.CommandTimeout = 9000;
                                cmdo.CommandText =
                                    "SELECT [id_orderevent], [del], [guid], [id_order], [event_date], [event_user], [event_status], [event_point], [event_text] FROM [dbo].[orderevent] WHERE [id_order] = " + t.Rows[i][0].ToString();
                                cmdo.Connection = db_connection;
                                dao = new SqlDataAdapter(cmdo);
                                tt = new DataTable("orderbody");
                                dao.Fill(tt);
                                if (tt.Rows.Count > 0)
                                {
                                    fl.WriteLine("[orderevents]");
                                    for (int j = 0; j < tt.Rows.Count; j++)
                                    {
                                        fl.WriteLine(tt.Rows[j][0].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][1].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][2].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][3].ToString().Trim().Replace(";", " ") + ";" +
                                                     ((tt.Rows[j][4].GetType().Name == "DBNull") ? "" : ((DateTime)tt.Rows[j][4]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][5].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][6].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][7].ToString().Trim().Replace(";", " ") + ";" +
                                                     tt.Rows[j][8].ToString().Trim().Replace(";", " "));
                                    }
                                }

                            }
                            SqlCommand cmdd = new SqlCommand();
                            cmdd.CommandTimeout = 9000;
                            cmdd.CommandText = "SELECT id_orderbody, id_order, id_mashine, id_material, id_good, guid, del, quantity, actual_quantity, sign, price, datework, id_user_work, name_work, defect_quantity, id_user_defect, user_defect, tech_defect, exported, dateadd, id_user_add, name_add, defect_ok FROM dbo.orderbody WHERE (id_order IS NULL) AND (exported = 0) OR (id_order = 0) AND (exported = 0)";
                            cmdd.Connection = db_connection;
                            SqlDataAdapter dad = new SqlDataAdapter(cmdd);
                            DataTable td = new DataTable("orderbody");
                            dad.Fill(td);
                            if (td.Rows.Count > 0)
                            {
                                fl.WriteLine("[orderbody-defect]");
                                for (int j = 0; j < td.Rows.Count; j++)
                                {
                                    exported_orderbody += ", ";
                                    fl.WriteLine(td.Rows[j][0].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][1].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][2].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][3].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][4].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][5].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][6].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][7].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][8].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][9].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][10].ToString().Trim().Replace(";", " ") + ";" +
                                                 ((td.Rows[j][11].GetType().Name == "DBNull") ? "" : ((DateTime)td.Rows[j][11]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][12].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][13].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][14].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][15].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][16].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][17].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][18].ToString().Trim().Replace(";", " ") + ";" +
                                                 ((td.Rows[j][19].GetType().Name == "DBNull") ? "" : ((DateTime)td.Rows[j][19]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][20].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][21].ToString().Trim().Replace(";", " ") + ";" +
                                                 td.Rows[j][22].ToString().Trim().Replace(";", " "));
                                    try
                                    {
                                        exported_orderbody += td.Rows[j][0].ToString();
                                    }
                                    catch (Exception ex)
                                    {
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка " + ex.Message + "\n" + ex.Source + "\n" + ex.StackTrace);
                                        file.Flush();
                                    }
                                }
                            }
                            fl.Close();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Экспорт заказов завершен");
                            file.Flush();
                            iniRobot.IniWriteValue("export", "order", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                        }
                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем экспорт платежей");
                        file.Flush();
                        cmd = new SqlCommand();
                        cmd.CommandTimeout = 9000;
                        cmd.CommandText = "SELECT [id_payment], [del], [guid], [date], [time], [id_user], [name_user], [number], [payment], [type], [comment], [payment_way], [exported] FROM [vwExportPayments]";
                        cmd.Connection = db_connection;
                        da = new SqlDataAdapter(cmd);
                        t = new DataTable("payment");
                        da.Fill(t);
                        if (t.Rows.Count > 0)
                        {
                            StreamWriter fl =
                                new StreamWriter(prop.Dir_export + "\\payments_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            fl.WriteLine("id_payment;del;guid;date;time;id_user;name_user;number;payment;type;comment;payment_way;exported");
                            for (int i = 0; i < t.Rows.Count; i++)
                            {
                                exported_payment += ", ";
                                fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                             t.Rows[i][1].ToString().Trim() + ";" +
                                             t.Rows[i][2].ToString().Trim() + ";" +
                                             ((t.Rows[i][3].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][3]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][4].ToString().Trim() + ";" +
                                             t.Rows[i][5].ToString().Trim() + ";" +
                                             t.Rows[i][6].ToString().Trim() + ";" +
                                             t.Rows[i][7].ToString().Trim() + ";" +
                                             t.Rows[i][8].ToString().Trim() + ";" +
                                             t.Rows[i][9].ToString().Trim() + ";" +
                                             t.Rows[i][10].ToString().Trim() + ";" +
                                             t.Rows[i][11].ToString().Trim() + ";" +
                                             t.Rows[i][12].ToString().Trim());
                                exported_payment += t.Rows[i][0].ToString();
                            }
                            fl.Close();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Экспорт платежей завершен");
                            file.Flush();
                            iniRobot.IniWriteValue("export", "payment", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                        }

                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] начинаем экспорт инвентаризации");
                        file.Flush();
                        cmd = new SqlCommand();
                        cmd.CommandTimeout = 9000;
                        cmd.CommandText = "SELECT [id_inventory], [del], [guid], [inventory_date], [inventory_user], [exported] FROM [dbo].[inventory] WHERE [exported] = 0";
                        cmd.Connection = db_connection;
                        da = new SqlDataAdapter(cmd);
                        t = new DataTable("inv");
                        da.Fill(t);
                        if (t.Rows.Count > 0)
                        {
                            StreamWriter fl =
                                new StreamWriter(prop.Dir_export + "\\inv_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            fl.WriteLine("id_inventory;del;guid;inventory_date;inventory_user");
                            for (int i = 0; i < t.Rows.Count; i++)
                            {
                                exported_inv += ", ";
                                fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                             t.Rows[i][1].ToString().Trim() + ";" +
                                             t.Rows[i][2].ToString().Trim() + ";" +
                                             ((t.Rows[i][3].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][3]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][4].ToString().Trim());
                                exported_inv += t.Rows[i][0].ToString();

                                SqlCommand cmdi = new SqlCommand();
                                cmdi.CommandTimeout = 9000;
                                cmdi.CommandText = "SELECT [id_inventorybody], [del], [guid], [id_inventory], [order_number], [order_found], [order_status], [order_status_t], [order_in], [order_out], [order_action], [order_action_t], [order_user], order_status_fact, order_status_fact_t, [exported] FROM [dbo].[inventorybody] WHERE [id_inventory] = " + t.Rows[i][0].ToString();
                                cmdi.Connection = db_connection;
                                SqlDataAdapter dai = new SqlDataAdapter(cmdi);
                                DataTable ti = new DataTable("inv");
                                dai.Fill(ti);
                                if (ti.Rows.Count > 0)
                                {
                                    fl.WriteLine("id_inventorybody;del;guid;id_inventory;order_number;order_found;order_status;order_status_t;order_in;order_out;order_action;order_action_t;order_user;order_status_fact;order_status_fact_t;exported");
                                    for (int iij = 0; iij < ti.Rows.Count; iij++)
                                    {
                                        fl.WriteLine(ti.Rows[iij][0].ToString().Trim() + ";" +
                                        ti.Rows[iij][1].ToString().Trim() + ";" +
                                        ti.Rows[iij][2].ToString().Trim() + ";" +
                                        ti.Rows[iij][3].ToString().Trim() + ";" +
                                        ti.Rows[iij][4].ToString().Trim() + ";" +
                                        ti.Rows[iij][5].ToString().Trim() + ";" +
                                        ti.Rows[iij][6].ToString().Trim() + ";" +
                                        ti.Rows[iij][7].ToString().Trim() + ";" +
                                        ((ti.Rows[iij][8].GetType().Name == "DBNull") ? "" : ((DateTime)ti.Rows[iij][8]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                        ((ti.Rows[iij][9].GetType().Name == "DBNull") ? "" : ((DateTime)ti.Rows[iij][9]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                        ti.Rows[iij][10].ToString().Trim() + ";" +
                                        ti.Rows[iij][11].ToString().Trim() + ";" +
                                        ti.Rows[iij][12].ToString().Trim() + ";" +
                                        ti.Rows[iij][13].ToString().Trim() + ";" +
                                        ti.Rows[iij][14].ToString().Trim() + ";" +
                                        ti.Rows[iij][15].ToString().Trim());

                                    }
                                }

                            }
                            fl.Close();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Экспорт инвентаризации завершен");
                            file.Flush();
                            iniRobot.IniWriteValue("export", "inventory", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                        }

                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем экспорт сверки");
                        file.Flush();
                        cmd = new SqlCommand();
                        cmd.CommandTimeout = 9000;
                        cmd.CommandText = "SELECT [id_verification], [del], [guid], [verification_date], [verification_user], [exported] FROM [dbo].[verification] WHERE [exported] = 0";
                        cmd.Connection = db_connection;
                        da = new SqlDataAdapter(cmd);
                        t = new DataTable("ver");
                        da.Fill(t);
                        if (t.Rows.Count > 0)
                        {
                            StreamWriter fl =
                                new StreamWriter(prop.Dir_export + "\\ver_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            fl.WriteLine("id_verification;del;guid;verification_date;verification_user");
                            for (int i = 0; i < t.Rows.Count; i++)
                            {
                                exported_ver += ", ";
                                fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                             t.Rows[i][1].ToString().Trim() + ";" +
                                             t.Rows[i][2].ToString().Trim() + ";" +
                                             ((t.Rows[i][3].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][3]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][4].ToString().Trim());
                                exported_ver += t.Rows[i][0].ToString();

                                SqlCommand cmdi = new SqlCommand();
                                cmdi.CommandTimeout = 5000;
                                cmdi.CommandText = "SELECT [id_verificationbody], [del], [guid], [id_verification], [order_number], [order_found], [order_status], [order_status_t], [order_in], [order_out], [order_action], [order_action_t], [order_user], order_status_fact, order_status_fact_t, [exported] FROM [dbo].[verificationbody] WHERE [id_verification] = " + t.Rows[i][0].ToString();
                                cmdi.Connection = db_connection;
                                SqlDataAdapter dai = new SqlDataAdapter(cmdi);
                                DataTable ti = new DataTable("ver");
                                dai.Fill(ti);
                                if (ti.Rows.Count > 0)
                                {
                                    fl.WriteLine("id_verificationbody;del;guid;id_verification;order_number;order_found;order_status;order_status_t;order_in;order_out;order_action;order_action_t;order_user;order_status_fact;order_status_fact_t;exported");
                                    for (int iij = 0; iij < ti.Rows.Count; iij++)
                                    {
                                        fl.WriteLine(ti.Rows[iij][0].ToString().Trim() + ";" +
                                        ti.Rows[iij][1].ToString().Trim() + ";" +
                                        ti.Rows[iij][2].ToString().Trim() + ";" +
                                        ti.Rows[iij][3].ToString().Trim() + ";" +
                                        ti.Rows[iij][4].ToString().Trim() + ";" +
                                        ti.Rows[iij][5].ToString().Trim() + ";" +
                                        ti.Rows[iij][6].ToString().Trim() + ";" +
                                        ti.Rows[iij][7].ToString().Trim() + ";" +
                                        ((ti.Rows[iij][8].GetType().Name == "DBNull") ? "" : ((DateTime)ti.Rows[iij][8]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                        ((ti.Rows[iij][9].GetType().Name == "DBNull") ? "" : ((DateTime)ti.Rows[iij][9]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                        ti.Rows[iij][10].ToString().Trim() + ";" +
                                        ti.Rows[iij][11].ToString().Trim() + ";" +
                                        ti.Rows[iij][12].ToString().Trim() + ";" +
                                        ti.Rows[iij][13].ToString().Trim() + ";" +
                                        ti.Rows[iij][14].ToString().Trim() + ";" +
                                        ti.Rows[iij][15].ToString().Trim());

                                    }
                                }

                            }
                            fl.Close();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Экспорт сверки завершен");
                            file.Flush();
                            iniRobot.IniWriteValue("export", "verification", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                        }

                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем экспорт списаний");
                        file.Flush();
                        cmd = new SqlCommand();
                        cmd.CommandTimeout = 9000;
                        cmd.CommandText = "SELECT [id_discard], [del], [guid], [datediscard], [id_material], [quantity], [comment], [id_user], [user_name], [orderno], [id_mashine], [exported] FROM [vwExportDiscard]";
                        cmd.Connection = db_connection;
                        da = new SqlDataAdapter(cmd);
                        t = new DataTable("discard");
                        da.Fill(t);
                        if (t.Rows.Count > 0)
                        {
                            StreamWriter fl =
                                new StreamWriter(prop.Dir_export + "\\discarding_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            fl.WriteLine("id_discard;del;guid;datediscard;id_material;quantity;comment;id_user;user_name;orderno;id_mashine;exported");
                            for (int i = 0; i < t.Rows.Count; i++)
                            {
                                exported_discard += ", ";
                                fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                             t.Rows[i][1].ToString().Trim() + ";" +
                                             t.Rows[i][2].ToString().Trim() + ";" +
                                             ((t.Rows[i][3].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][3]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][4].ToString().Trim() + ";" +
                                             t.Rows[i][5].ToString().Trim() + ";" +
                                             t.Rows[i][6].ToString().Trim() + ";" +
                                             t.Rows[i][7].ToString().Trim() + ";" +
                                             t.Rows[i][8].ToString().Trim() + ";" +
                                             t.Rows[i][9].ToString().Trim() + ";" +
                                             t.Rows[i][10].ToString().Trim() + ";" +
                                             t.Rows[i][11].ToString().Trim());
                                exported_discard += t.Rows[i][0].ToString();
                            }
                            fl.Close();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Экспорт списаний завершен");
                            file.Flush();
                            iniRobot.IniWriteValue("export", "discard", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                        }

                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем экспорт счетчиков операторов");
                        file.Flush();
                        cmd = new SqlCommand();
                        cmd.CommandTimeout = 9000;
                        cmd.CommandText = "SELECT [id_counter], [guid], [id_mashine], [id_user], [name_user], [c1], [c1date], [c2], [c2date], [c0], [c00], [exported] FROM [dbo].[counters] WHERE [exported] = 0";
                        cmd.Connection = db_connection;
                        da = new SqlDataAdapter(cmd);
                        t = new DataTable("counters");
                        da.Fill(t);
                        if (t.Rows.Count > 0)
                        {
                            StreamWriter fl =
                                new StreamWriter(prop.Dir_export + "\\opcounter_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            fl.WriteLine("id_counter;guid;id_mashine;id_user;name_user;c1;c1date;c2;c2date;c0;c00;exported");
                            for (int i = 0; i < t.Rows.Count; i++)
                            {
                                exported_counter1 += ", ";
                                fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                             t.Rows[i][1].ToString().Trim() + ";" +
                                             t.Rows[i][2].ToString().Trim() + ";" +
                                             t.Rows[i][3].ToString().Trim() + ";" +
                                             t.Rows[i][4].ToString().Trim() + ";" +
                                             t.Rows[i][5].ToString().Trim() + ";" +
                                             ((t.Rows[i][6].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][6]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][7].ToString().Trim() + ";" +
                                             ((t.Rows[i][8].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][8]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][9].ToString().Trim() + ";" +
                                             t.Rows[i][10].ToString().Trim() + ";" +
                                             t.Rows[i][11].ToString().Trim());
                                exported_counter1 += t.Rows[i][0].ToString();
                            }
                            fl.Close();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Экспорт счетчиков операторов завершен");
                            file.Flush();
                            iniRobot.IniWriteValue("export", "counter1", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                        }

                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем экспорт счетчиков моментальной печати");
                        file.Flush();
                        cmd = new SqlCommand();
                        cmd.CommandTimeout = 9000;
                        cmd.CommandText = "SELECT [id_mcounter], [guid], [mcounter], [date_mcounter], [id_user], [name_user], [exported] FROM [dbo].[mcounters] WHERE [exported] = 0";
                        cmd.Connection = db_connection;
                        da = new SqlDataAdapter(cmd);
                        t = new DataTable("counters");
                        da.Fill(t);
                        if (t.Rows.Count > 0)
                        {
                            StreamWriter fl =
                                new StreamWriter(prop.Dir_export + "\\mcounter_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            fl.WriteLine("id_mcounter;guid;c;datec;id_user;name_user;exported");
                            for (int i = 0; i < t.Rows.Count; i++)
                            {
                                exported_counter2 += ", ";
                                fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                             t.Rows[i][1].ToString().Trim() + ";" +
                                             t.Rows[i][2].ToString().Trim() + ";" +
                                             ((t.Rows[i][3].GetType().Name == "DBNull") ? "" : ((DateTime)t.Rows[i][3]).ToString("dd.MM.yyyy hh:mm", ci)).Trim().Replace(";", " ") + ";" +
                                             t.Rows[i][4].ToString().Trim() + ";" +
                                             t.Rows[i][5].ToString().Trim() + ";" +
                                             t.Rows[i][6].ToString().Trim());
                                exported_counter2 += t.Rows[i][0].ToString();
                            }
                            fl.Close();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Экспорт счетчиков моментальной печати завершен");
                            file.Flush();
                            iniRobot.IniWriteValue("export", "counter2", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                        }

                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем экспорт событий по терминальным заказам");
                        file.Flush();
                        cmd = new SqlCommand();
                        cmd.CommandTimeout = 9000;
                        cmd.CommandText = "SELECT [id_kiosk_order], [number], [status], [dateok], [exported] FROM [dbo].[kiosk_orders_ok] WHERE [exported] = 0;";
                        cmd.Connection = db_connection;
                        da = new SqlDataAdapter(cmd);
                        t = new DataTable("action");
                        da.Fill(t);
                        if (t.Rows.Count > 0)
                        {
                            try
                            {
                                for (int i = 0; i < t.Rows.Count; i++)
                                {
                                    String strURL = "http://print.fotoland.ru/photo/psa.set.status.php?" +
                                        "o=" + t.Rows[i]["number"].ToString().Trim() +
                                        "&d=" + DateTime.Parse(t.Rows[i]["dateok"].ToString()).Year.ToString("D4") + "/" +
                                                DateTime.Parse(t.Rows[i]["dateok"].ToString()).Month.ToString("D2") + "/" +
                                                DateTime.Parse(t.Rows[i]["dateok"].ToString()).Day.ToString("D2") + " " +
                                                DateTime.Parse(t.Rows[i]["dateok"].ToString()).ToShortTimeString() +
                                        "&a=" + t.Rows[i]["status"].ToString();
                                    HttpWebRequest objWebRequest;
                                    HttpWebResponse objWebResponse;
                                    StreamReader streamReader;
                                    String strHTML;
                                    objWebRequest = (HttpWebRequest)WebRequest.Create(strURL);
                                    objWebRequest.Method = "GET";
                                    objWebResponse = (HttpWebResponse)objWebRequest.GetResponse();
                                    streamReader = new StreamReader(objWebResponse.GetResponseStream());
                                    strHTML = streamReader.ReadToEnd();
                                    streamReader.Close();
                                    objWebResponse.Close();
                                    objWebRequest.Abort();
                                    if (strHTML.Trim() == "ok")
                                    {
                                        exported_taction += ", " + t.Rows[i]["id_kiosk_order"].ToString();
                                    }
                                }
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Экспорт событий по терминальным заказам завершен");
                                file.Flush();
                                iniRobot.IniWriteValue("export", "taction", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                            }
                            catch (Exception ex)
                            {
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка " + ex.Message + "\n" + ex.Source);
                                file.Flush();
                            }
                        }

                        try
                        {
                            if (db_connection.State == ConnectionState.Closed)
                                db_connection.Open();
                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [order] SET [exported] = 1 WHERE id_order IN (" + exported_order + ")";
                            cmd.Connection = db_connection;
                            cmd.CommandTimeout = 9000;
                            cmd.ExecuteNonQuery();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Проставляем признак экспорта в заказах");
                            file.Flush();

                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [orderbody] SET [exported] = 1 WHERE id_orderbody IN (" + exported_orderbody + ")";
                            cmd.Connection = db_connection;
                            cmd.CommandTimeout = 9000;
                            cmd.ExecuteNonQuery();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Проставляем признак экспорта в таблице заказа");
                            file.Flush();

                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [payments] SET [exported] = 1 WHERE id_payment IN (" + exported_payment + ")";
                            cmd.Connection = db_connection;
                            cmd.CommandTimeout = 9000;
                            cmd.ExecuteNonQuery();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Проставляем признак экспорта в платежах");
                            file.Flush();

                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [discard] SET [exported] = 1 WHERE id_discard IN (" + exported_discard + ")";
                            cmd.Connection = db_connection;
                            cmd.CommandTimeout = 9000;
                            cmd.ExecuteNonQuery();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Проставляем признак экспорта в списаниях");
                            file.Flush();

                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [inventory] SET [exported] = 1 WHERE id_inventory IN (" + exported_inv + ")";
                            cmd.Connection = db_connection;
                            cmd.CommandTimeout = 9000;
                            cmd.ExecuteNonQuery();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Проставляем признак экспорта в инвентаризации");
                            file.Flush();

                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [verification] SET [exported] = 1 WHERE id_verification IN (" + exported_ver + ")";
                            cmd.Connection = db_connection;
                            cmd.CommandTimeout = 9000;
                            cmd.ExecuteNonQuery();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Проставляем признак экспорта в сверке");
                            file.Flush();

                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [kiosk_orders_ok] SET [exported] = 1 WHERE id_kiosk_order IN (" + exported_taction + ")";
                            cmd.Connection = db_connection;
                            cmd.CommandTimeout = 9000;
                            cmd.ExecuteNonQuery();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Проставляем признак экспорта событий по терминальным заказам");
                            file.Flush();

                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [counters] SET [exported] = 1 WHERE id_counter IN (" + exported_counter1 + ")";
                            cmd.Connection = db_connection;
                            cmd.CommandTimeout = 9000;
                            cmd.ExecuteNonQuery();
                            file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Проставляем признак экспорта счетчиков операторов");
                            file.Flush();

                            cmd = new SqlCommand();
                            cmd.CommandText = "UPDATE [mcounters] SET [exported] = 1 WHERE id_mcounter IN (" + exported_counter2 + ")";
                            cmd.Connection = 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();
                        }
                    }
                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Начинаем отправку данных");
                    file.Flush();
                    DirectoryInfo dExport = new DirectoryInfo(prop.Dir_export);
                    int ij = 0;
                    bool doit = false;
                    if (dExport.GetFiles("*.csv").Length > 0)
                        doit = true;
                    foreach (FileInfo f in dExport.GetFiles("*.csv"))
                    {
                        if (prop.ExportDoCopy)
                        {
                            try
                            {
                                string p = "";
                                p += "\\Copy\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Year.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Month < 10
                                         ? "0" + DateTime.Now.Month.ToString() + "\\"
                                         : DateTime.Now.Month.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Day < 10
                                         ? "0" + DateTime.Now.Day.ToString() + "\\"
                                         : DateTime.Now.Day.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);

                                File.Copy(f.FullName, prop.Dir_export + p + f.Name, true);
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно скопирован в резервный каталог");
                                file.Flush();
                            }
                            catch (Exception ex)
                            {
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " в резервный каталог." + ex.Message + "\n" + ex.Source);
                                file.Flush();
                            }
                        }
                        if (prop.Export_from_ftp)
                        {
                            try
                            {
                                PSA.Lib.Util.ftpClient ftp = new PSA.Lib.Util.ftpClient(prop.FTP_Server_Export, prop.FTP_User, prop.FTP_Password);
                                if (ftp.Upload(prop.Dir_export + "\\" + f.Name, prop.FTP_Path_Export + "/" + f.Name))
                                {
                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно скопирован на ftp сервер");
                                    file.Flush();
                                    if (ftp.Download(prop.Dir_export, f.Name + ".tmp", prop.FTP_Path_Export, f.Name))
                                    {
                                        if (checkFiles(prop.Dir_export + "\\" + f.Name, prop.Dir_export + "\\" + f.Name + ".tmp"))
                                        {

                                            if (prop.ExportClearDirAfterCopy)
                                            {
                                                try
                                                {
                                                    f.Delete();
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно удален");
                                                    file.Flush();
                                                    File.Delete(prop.Dir_export + "\\" + f.Name + ".tmp");
                                                }
                                                catch (Exception ex)
                                                {
                                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка удаления файла " + f.Name + "." + ex.Message + "\n" + ex.Source);
                                                    file.Flush();
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " на ftp сервер");
                                    file.Flush();
                                }
                            }
                            catch (Exception ex)
                            {
                                file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " на ftp сервер." + ex.Message + "\n" + ex.Source);
                                file.Flush();
                            }
                        }
                        ij++;
                    }
                    if (doit)
                        iniRobot.IniWriteValue("export", "csv", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                    doit = false;
                    int ii = 0;
                    if (dExport.GetFiles("er*.info").Length > 0)
                        doit = true;
                    foreach (FileInfo f in dExport.GetFiles("er*.info"))
                    {
                        if (f.Name != "er_" + DateTime.Now.Year.ToString("D4") + "-" + DateTime.Now.Month.ToString("D2") + "-" + DateTime.Now.Day.ToString("D2") + ".info")
                        {
                            if (prop.ExportDoCopy)
                            {
                                try
                                {
                                    string p = "";
                                    p += "\\Copy\\";
                                    if (!Directory.Exists(prop.Dir_export + p))
                                        Directory.CreateDirectory(prop.Dir_export + p);
                                    p += DateTime.Now.Year.ToString() + "\\";
                                    if (!Directory.Exists(prop.Dir_export + p))
                                        Directory.CreateDirectory(prop.Dir_export + p);
                                    p += DateTime.Now.Month < 10
                                             ? "0" + DateTime.Now.Month.ToString() + "\\"
                                             : DateTime.Now.Month.ToString() + "\\";
                                    if (!Directory.Exists(prop.Dir_export + p))
                                        Directory.CreateDirectory(prop.Dir_export + p);
                                    p += DateTime.Now.Day < 10
                                             ? "0" + DateTime.Now.Day.ToString() + "\\"
                                             : DateTime.Now.Day.ToString() + "\\";
                                    if (!Directory.Exists(prop.Dir_export + p))
                                        Directory.CreateDirectory(prop.Dir_export + p);

                                    File.Copy(f.FullName, prop.Dir_export + p + f.Name, true);
                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно скопирован в резервный каталог");
                                    file.Flush();
                                }
                                catch (Exception ex)
                                {
                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " в резервный каталог." + ex.Message + "\n" + ex.Source);
                                    file.Flush();
                                }
                            }
                            if (prop.Export_from_ftp)
                            {
                                try
                                {
                                    PSA.Lib.Util.ftpClient ftp = new PSA.Lib.Util.ftpClient(prop.FTP_Server_Export, prop.FTP_User, prop.FTP_Password);
                                    if (ftp.Upload(prop.Dir_export + "\\" + f.Name, prop.FTP_Path_Export + "/info/" + f.Name))
                                    {
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно скопирован на ftp сервер");
                                        file.Flush();
                                        if (ftp.Download(prop.Dir_export, f.Name + ".tmp", prop.FTP_Path_Export, "/info/" + f.Name))
                                        {
                                            if (checkFiles(prop.Dir_export + "\\" + f.Name, prop.Dir_export + "\\" + f.Name + ".tmp"))
                                            {

                                                if (prop.ExportClearDirAfterCopy)
                                                {
                                                    try
                                                    {
                                                        f.Delete();
                                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно удален");
                                                        file.Flush();
                                                        File.Delete(prop.Dir_export + "\\" + f.Name + ".tmp");
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка удаления файла " + f.Name + "." + ex.Message + "\n" + ex.Source);
                                                        file.Flush();
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " на ftp сервер");
                                        file.Flush();
                                    }
                                }
                                catch (Exception ex)
                                {
                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " на ftp сервер." + ex.Message + "\n" + ex.Source);
                                    file.Flush();
                                }
                            }
                        }
                        ii++;
                    }
                    if (doit)
                        iniRobot.IniWriteValue("export", "er", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                    doit = false;

                    ii = 0;
                    if (dExport.GetFiles("*clear*.info").Length > 0)
                        doit = true;
                    foreach (FileInfo f in dExport.GetFiles("*clear*.info"))
                    {
                        if (f.Name != "er_" + DateTime.Now.Year.ToString("D4") + "-" + DateTime.Now.Month.ToString("D2") + "-" + DateTime.Now.Day.ToString("D2") + ".info")
                        {
                            if (prop.ExportDoCopy)
                            {
                                try
                                {
                                    string p = "";
                                    p += "\\Copy\\";
                                    if (!Directory.Exists(prop.Dir_export + p))
                                        Directory.CreateDirectory(prop.Dir_export + p);
                                    p += DateTime.Now.Year.ToString() + "\\";
                                    if (!Directory.Exists(prop.Dir_export + p))
                                        Directory.CreateDirectory(prop.Dir_export + p);
                                    p += DateTime.Now.Month < 10
                                             ? "0" + DateTime.Now.Month.ToString() + "\\"
                                             : DateTime.Now.Month.ToString() + "\\";
                                    if (!Directory.Exists(prop.Dir_export + p))
                                        Directory.CreateDirectory(prop.Dir_export + p);
                                    p += DateTime.Now.Day < 10
                                             ? "0" + DateTime.Now.Day.ToString() + "\\"
                                             : DateTime.Now.Day.ToString() + "\\";
                                    if (!Directory.Exists(prop.Dir_export + p))
                                        Directory.CreateDirectory(prop.Dir_export + p);

                                    File.Copy(f.FullName, prop.Dir_export + p + f.Name, true);
                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно скопирован в резервный каталог");
                                    file.Flush();
                                }
                                catch (Exception ex)
                                {
                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " в резервный каталог." + ex.Message + "\n" + ex.Source);
                                    file.Flush();
                                }
                            }
                            if (prop.Export_from_ftp)
                            {
                                try
                                {
                                    PSA.Lib.Util.ftpClient ftp = new PSA.Lib.Util.ftpClient(prop.FTP_Server_Export, prop.FTP_User, prop.FTP_Password);
                                    if (ftp.Upload(prop.Dir_export + "\\" + f.Name, prop.FTP_Path_Export + "/info/" + f.Name))
                                    {
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно скопирован на ftp сервер");
                                        file.Flush();
                                        if (ftp.Download(prop.Dir_export, f.Name + ".tmp", prop.FTP_Path_Export, "/info/" + f.Name))
                                        {
                                            if (checkFiles(prop.Dir_export + "\\" + f.Name, prop.Dir_export + "\\" + f.Name + ".tmp"))
                                            {

                                                if (prop.ExportClearDirAfterCopy)
                                                {
                                                    try
                                                    {
                                                        f.Delete();
                                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [+] Файл " + f.Name + " успешно удален");
                                                        file.Flush();
                                                        File.Delete(prop.Dir_export + "\\" + f.Name + ".tmp");
                                                    }
                                                    catch (Exception ex)
                                                    {
                                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка удаления файла " + f.Name + "." + ex.Message + "\n" + ex.Source);
                                                        file.Flush();
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " на ftp сервер");
                                        file.Flush();
                                    }
                                }
                                catch (Exception ex)
                                {
                                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка копирования файла " + f.Name + " на ftp сервер." + ex.Message + "\n" + ex.Source);
                                    file.Flush();
                                }
                            }
                        }
                        ii++;
                    }
                    if (doit)
                        iniRobot.IniWriteValue("export", "clear", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                    doit = false;

                }
                else
                {
                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Каталог экспорта не найден");
                }
            }
            catch(Exception ex)
                {
                    file.WriteLine(DateTime.Now.ToString("g", ci) + " [!] Ошибка " + ex.Message + "\n" + ex.Source + "\n" + ex.StackTrace);
                    file.Flush();
                }
        }
Exemple #3
0
 private void backupDataBase(string path, string backup, string zip, bool upload)
 {
     using (SqlConnection cn = new SqlConnection())
     {
         try
         {
             cn.ConnectionString = settings.Connection_string;
             cn.Open();
             SqlCommand cmd = new SqlCommand();
             cmd.Connection = cn;
             cmd.CommandTimeout = 99999;
             cmd.CommandText = "DBCC CHECKDB";
             cmd.ExecuteNonQuery();
             cmd.CommandText = "DBCC SHRINKDATABASE ([psa])";
             cmd.ExecuteNonQuery();
             cmd.CommandText = "EXEC master.dbo.sp_dropdevice " +
                               "@logicalname = N'backup'";
             cmd.ExecuteNonQuery();
             cmd.CommandText = "EXEC master.dbo.sp_addumpdevice  " +
                               "@devtype = N'disk', @logicalname = N'backup', " +
                               "@physicalname = N'" + path + "\\" + backup + "'";
             cmd.ExecuteNonQuery();
             cmd.CommandText = "BACKUP DATABASE [psa] " +
                               "TO  [backup] " +
                               "WITH NOFORMAT, INIT,  " +
                               "NAME = N'psa-Full Database Backup', " +
                               "SKIP, NOREWIND, NOUNLOAD,  STATS = 10";
             cmd.ExecuteNonQuery();
         }
         catch { }
     }
     try
     {
         string[] filenames = new string[1] { path + "\\" + backup };
         using (ZipOutputStream s = new ZipOutputStream(File.Create(path + "\\" + zip)))
         {
             s.SetLevel(9);
             byte[] buffer = new byte[4096];
             foreach (string file in filenames)
             {
                 ZipEntry entry = new
                        ZipEntry(Path.GetFileName(file));
                 entry.DateTime = DateTime.Now;
                 s.PutNextEntry(entry);
                 using (FileStream fs = File.OpenRead(file))
                 {
                     int sourceBytes;
                     do
                     {
                         sourceBytes = fs.Read(buffer, 0, buffer.Length);
                         s.Write(buffer, 0, sourceBytes);
                     }
                     while (sourceBytes > 0);
                 }
             }
             s.Finish();
             s.Close();
         }
     }
     catch { }
     PSA.Lib.Util.ftpClient ftp = new PSA.Lib.Util.ftpClient(settings.FTP_Server_Export, settings.FTP_User, settings.FTP_Password);
     ftp.Upload(path + "\\" + zip, settings.FTP_Path_Export + "/" + zip);
 }
Exemple #4
0
        private void DoExport()
        {
            if (Directory.Exists(prop.Dir_export))
            {
                ini iniRobot = new ini(System.Environment.GetCommandLineArgs()[0].Substring(
                                        0,
                                        System.Environment.GetCommandLineArgs()[0].LastIndexOf('\\')
                                        ) + "\\robot.ini");
                string exported_order = "0";
                string exported_orderbody = "0";
                string exported_payment = "0";
                string exported_discard = "0";
                string exported_inv = "0";
                string exported_ver = "0";
                string date = DateTime.Now.Year.ToString();
                date += "_";
                date += DateTime.Now.Month < 10 ? "0" + DateTime.Now.Month.ToString() : DateTime.Now.Month.ToString();
                date += "_";
                date += DateTime.Now.Day < 10 ? "0" + DateTime.Now.Day.ToString() : DateTime.Now.Day.ToString();
                date += "_";
                date += DateTime.Now.Hour < 10 ? "0" + DateTime.Now.Hour.ToString() : DateTime.Now.Hour.ToString();
                date += "_";
                date += DateTime.Now.Minute < 10 ? "0" + DateTime.Now.Minute.ToString() : DateTime.Now.Minute.ToString();
                date += "_";
                date += DateTime.Now.Second < 10 ? "0" + DateTime.Now.Second.ToString() : DateTime.Now.Second.ToString();
                SqlCommand cmd = new SqlCommand();

                cmd.CommandTimeout = 9000;
                //cmd.CommandText = "SELECT derivedtbl_1.id_order, derivedtbl_1.id_user_accept, derivedtbl_1.id_user_operator, derivedtbl_1.id_user_designer, derivedtbl_1.id_user_delivery, derivedtbl_1.id_client, derivedtbl_1.guid, derivedtbl_1.del, derivedtbl_1.name_accept, derivedtbl_1.name_operator, derivedtbl_1.name_designer,  derivedtbl_1.name_delivery, derivedtbl_1.status, derivedtbl_1.number, derivedtbl_1.input_date, derivedtbl_1.expected_date, derivedtbl_1.output_date,  derivedtbl_1.advanced_payment, derivedtbl_1.final_payment, derivedtbl_1.discont_percent, derivedtbl_1.discont_code, derivedtbl_1.preview,  derivedtbl_1.comment, derivedtbl_1.crop, derivedtbl_1.type, derivedtbl_1.exported, derivedtbl_1.client, derivedtbl_1.name AS category,  derivedtbl_1.id_category, derivedtbl_1.bonus, SUM(dbo.orderbody.price * dbo.orderbody.actual_quantity) AS sm FROM (SELECT dbo.[order].id_order, dbo.[order].id_user_accept, dbo.[order].id_user_operator, dbo.[order].id_user_designer, dbo.[order].id_user_delivery,  dbo.[order].id_client, dbo.[order].guid, dbo.[order].del, dbo.[order].name_accept, dbo.[order].name_operator, dbo.[order].name_designer,  dbo.[order].name_delivery, dbo.[order].status, CAST(dbo.[order].number AS nchar(15)) AS number, dbo.[order].input_date,  dbo.[order].expected_date, dbo.[order].output_date, dbo.[order].advanced_payment, dbo.[order].final_payment, dbo.[order].discont_percent,  CAST(dbo.[order].discont_code AS nchar(15)) AS discont_code, dbo.[order].preview, dbo.[order].comment, dbo.[order].crop, dbo.[order].type,  dbo.[order].exported, dbo.client.name AS client, dbo.category.name, dbo.category.id_category, dbo.[order].bonus FROM dbo.category LEFT OUTER JOIN dbo.client ON dbo.category.id_category = dbo.client.id_category RIGHT OUTER JOIN dbo.[order] ON dbo.client.id_client = dbo.[order].id_client WHERE (dbo.[order].exported = 0)) AS derivedtbl_1 INNER JOIN dbo.orderbody ON derivedtbl_1.id_order = dbo.orderbody.id_order GROUP BY derivedtbl_1.id_order, derivedtbl_1.id_user_accept, derivedtbl_1.id_user_operator, derivedtbl_1.id_user_designer, derivedtbl_1.id_user_delivery,  derivedtbl_1.id_client, derivedtbl_1.guid, derivedtbl_1.del, derivedtbl_1.name_accept, derivedtbl_1.name_operator, derivedtbl_1.name_designer, derivedtbl_1.name_delivery, derivedtbl_1.status, derivedtbl_1.number, derivedtbl_1.input_date, derivedtbl_1.expected_date, derivedtbl_1.output_date,  derivedtbl_1.advanced_payment, derivedtbl_1.final_payment, derivedtbl_1.discont_percent, derivedtbl_1.discont_code, derivedtbl_1.comment,  derivedtbl_1.crop, derivedtbl_1.type, derivedtbl_1.client, derivedtbl_1.name, derivedtbl_1.bonus, derivedtbl_1.exported, derivedtbl_1.preview, derivedtbl_1.id_category";
                cmd.CommandText =
                    "SELECT dbo.[order].id_order, dbo.[order].id_user_accept, dbo.[order].id_user_operator, dbo.[order].id_user_designer, dbo.[order].id_user_delivery," +
                    "dbo.[order].id_client, dbo.[order].guid, dbo.[order].del, dbo.[order].name_accept, dbo.[order].name_operator, dbo.[order].name_designer, " +
                    "dbo.[order].name_delivery, dbo.[order].status, CAST(dbo.[order].number AS nchar(15)) AS number, dbo.[order].input_date, dbo.[order].expected_date,  " +
                    "dbo.[order].output_date, dbo.[order].advanced_payment, dbo.[order].final_payment, dbo.[order].discont_percent, " +
                    "CAST(dbo.[order].discont_code AS nchar(15)) AS discont_code, dbo.[order].preview, dbo.[order].comment, dbo.[order].crop, dbo.[order].type,  " +
                    "dbo.[order].exported, dbo.client.name AS client, dbo.category.name AS category, dbo.category.id_category, dbo.[order].bonus,  " +
                    "dbo.[order].order_price AS sm " +
                    "FROM         dbo.category LEFT OUTER JOIN " +
                    "dbo.client ON dbo.category.id_category = dbo.client.id_category RIGHT OUTER JOIN " +
                    "dbo.[order] ON dbo.client.id_client = dbo.[order].id_client " +
                    "WHERE     (dbo.[order].exported = 0)";
                cmd.Connection = db_connection;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable t = new DataTable("order");
                da.Fill(t);
                if (t.Rows.Count > 0)
                {
                    StreamWriter fl = new StreamWriter(prop.Dir_export + "\\order3_" + date + ".csv", true, Encoding.GetEncoding(1251));
                    pb.Minimum = 0;
                    pb.Maximum = t.Rows.Count;
                    pb.Value = 0;
                    for (int i = 0; i < t.Rows.Count; i++)
                    {
                        Application.DoEvents();
                        exported_order += ", ";
                        //fl.WriteLine("id_order;id_user_accept;id_user_operator;id_user_designer;id_user_delivery;id_client;guid;del;name_accept;name_operator;name_designer;name_delivery;status;number;input_date;expected_date;output_date;advanced_payment;final_payment;discont_percent;discont_code;preview;comment;crop;type;exported;client;category;category_id;bonus;suma");
                        fl.WriteLine("[order]");
                        fl.WriteLine(t.Rows[i][0].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][1].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][2].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][3].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][4].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][5].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][6].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][7].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][8].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][9].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][10].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][11].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][12].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][13].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][14].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][15].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][16].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][17].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][18].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][19].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][20].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][21].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][22].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][23].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][24].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][25].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][26].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][27].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][28].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][29].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][30].ToString().Trim().Replace(";", " "));
                        exported_order += t.Rows[i][0].ToString();

                        SqlCommand cmdo = new SqlCommand();
                        cmdo.CommandTimeout = 9000;
                        cmdo.CommandText =
                            "SELECT dbo.orderbody.id_orderbody, dbo.orderbody.id_order, dbo.orderbody.id_mashine, dbo.orderbody.id_material, dbo.orderbody.id_good, " +
                            "dbo.orderbody.guid, dbo.orderbody.del, dbo.orderbody.quantity, dbo.orderbody.actual_quantity, dbo.orderbody.sign, dbo.orderbody.price, " +
                            "dbo.orderbody.datework, ISNULL(user_1.id_user, 0) AS id_user_work, ISNULL(user_1.name, '') AS name_work, dbo.orderbody.defect_quantity, " +
                            "ISNULL(user_2.id_user, 0) AS id_user_defect, ISNULL(user_2.name, '') AS user_defect, dbo.orderbody.tech_defect, dbo.orderbody.exported, " +
                            "dbo.orderbody.dateadd, ISNULL(dbo.[user].id_user, 0) AS id_user_add, ISNULL(dbo.[user].name, '') AS name_add, dbo.orderbody.defect_ok,  " +
                            "dbo.orderbody.comment " +
                            "FROM         dbo.[user] AS user_2 RIGHT OUTER JOIN " +
                            "dbo.orderbody ON user_2.id_user = dbo.orderbody.id_user_defect LEFT OUTER JOIN " +
                            "dbo.[user] AS user_1 ON dbo.orderbody.id_user_work = user_1.id_user LEFT OUTER JOIN " +
                            "dbo.[user] ON dbo.orderbody.id_user_add = dbo.[user].id_user " +
                            "WHERE dbo.orderbody.id_order = " + t.Rows[i][0].ToString();
                        cmdo.Connection = db_connection;
                        SqlDataAdapter dao = new SqlDataAdapter(cmdo);
                        DataTable tt = new DataTable("orderbody");
                        dao.Fill(tt);
                        if (tt.Rows.Count > 0)
                        {
                            //StreamWriter flo =
                            //	new StreamWriter(prop.Dir_export + "\\orderbody_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            //fl.WriteLine("id_orderbody;id_order;id_mashine;id_material;id_good;guid;del;quantity;actual_quantity;sign;price;datework;id_user_work;name_work;defect_quantity;id_user_defect;user_defect;tech_defect;exported;dateadd;id_user_add;name_add;defect_ok");
                            fl.WriteLine("[orderbody]");
                            for (int j = 0; j < tt.Rows.Count; j++)
                            {
                                //exported_orderbody += ", ";
                                fl.WriteLine(tt.Rows[j][0].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][1].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][2].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][3].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][4].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][5].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][6].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][7].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][8].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][9].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][10].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][11].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][12].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][13].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][14].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][15].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][16].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][17].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][18].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][19].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][20].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][21].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][22].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][23].ToString().Trim().Replace(";", " "));
                                //exported_orderbody += t.Rows[i][0].ToString();
                            }
                            //flo.Close();
                        }

                        cmdo = new SqlCommand();
                        cmdo.CommandTimeout = 9000;
                        cmdo.CommandText =
                            "SELECT [id_orderevent], [del], [guid], [id_order], [event_date], [event_user], [event_status], [event_point], [event_text] FROM [dbo].[orderevent] WHERE [id_order] = " + t.Rows[i][0].ToString();
                        cmdo.Connection = db_connection;
                        dao = new SqlDataAdapter(cmdo);
                        tt = new DataTable("orderbody");
                        dao.Fill(tt);
                        if (tt.Rows.Count > 0)
                        {
                            //StreamWriter flo =
                            //	new StreamWriter(prop.Dir_export + "\\orderbody_" + date + ".csv", true, Encoding.GetEncoding(1251));
                            //fl.WriteLine("id_orderbody;id_order;id_mashine;id_material;id_good;guid;del;quantity;actual_quantity;sign;price;datework;id_user_work;name_work;defect_quantity;id_user_defect;user_defect;tech_defect;exported;dateadd;id_user_add;name_add;defect_ok");
                            fl.WriteLine("[orderevents]");
                            for (int j = 0; j < tt.Rows.Count; j++)
                            {
                                //exported_orderbody += ", ";
                                fl.WriteLine(tt.Rows[j][0].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][1].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][2].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][3].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][4].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][5].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][6].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][7].ToString().Trim().Replace(";", " ") + ";" +
                                             tt.Rows[j][8].ToString().Trim().Replace(";", " "));
                                //exported_orderbody += t.Rows[i][0].ToString();
                            }
                            //flo.Close();
                        }
                        try
                        {
                            pb.Value = i;
                            Application.DoEvents();
                        }
                        catch
                        {
                        }

                    }
                    SqlCommand cmdd = new SqlCommand();
                    cmdd.CommandTimeout = 9000;
                    cmdd.CommandText = "SELECT id_orderbody, id_order, id_mashine, id_material, id_good, guid, del, quantity, actual_quantity, sign, price, datework, id_user_work, name_work, defect_quantity, id_user_defect, user_defect, tech_defect, exported, dateadd, id_user_add, name_add, defect_ok FROM dbo.orderbody WHERE (id_order IS NULL) AND (exported = 0) OR (id_order = 0) AND (exported = 0)";
                    cmdd.Connection = db_connection;
                    SqlDataAdapter dad = new SqlDataAdapter(cmdd);
                    DataTable td = new DataTable("orderbody");
                    dad.Fill(td);
                    if (td.Rows.Count > 0)
                    {
                        //StreamWriter flo =
                        //	new StreamWriter(prop.Dir_export + "\\orderbody_" + date + ".csv", true, Encoding.GetEncoding(1251));
                        //fl.WriteLine("id_orderbody;id_order;id_mashine;id_material;id_good;guid;del;quantity;actual_quantity;sign;price;datework;id_user_work;name_work;defect_quantity;id_user_defect;user_defect;tech_defect;exported;dateadd;id_user_add;name_add;defect_ok");
                        fl.WriteLine("[orderbody-defect]");
                        pb.Minimum = 0;
                        pb.Maximum = td.Rows.Count;
                        pb.Value = 0;
                        for (int j = 0; j < td.Rows.Count; j++)
                        {
                            exported_orderbody += ", ";
                            Application.DoEvents();
                            fl.WriteLine(td.Rows[j][0].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][1].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][2].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][3].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][4].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][5].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][6].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][7].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][8].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][9].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][10].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][11].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][12].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][13].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][14].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][15].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][16].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][17].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][18].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][19].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][20].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][21].ToString().Trim().Replace(";", " ") + ";" +
                                         td.Rows[j][22].ToString().Trim().Replace(";", " "));
                            try
                            {
                                exported_orderbody += td.Rows[j][0].ToString();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("");
                            }
                            try
                            {
                                pb.Value = j;
                                Application.DoEvents();
                            }
                            catch
                            {
                            }
                        }
                        //flo.Close();
                    }
                    fl.Close();
                    iniRobot.IniWriteValue("export", "order", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                }

                /*
                cmd = new SqlCommand();
                cmd.CommandTimeout = 5000;
                cmd.CommandText = "SELECT [id_orderbody], [id_order], [id_mashine], [id_material], [id_good], [guid], [del], [quantity], [actual_quantity], [sign], [price], [datework], [id_user_work], [name_work], [defect_quantity], [id_user_defect], [user_defect], [tech_defect], [exported] FROM [vwExportOrderBody]";
                cmd.Connection = db_connection;
                da = new SqlDataAdapter(cmd);
                t = new DataTable("orderbody");
                da.Fill(t);
                if (t.Rows.Count > 0)
                {
                    StreamWriter fl =
                        new StreamWriter(prop.Dir_export + "\\orderbody_" + date + ".csv", true, Encoding.GetEncoding(1251));
                    fl.WriteLine("id_orderbody;id_order;id_mashine;id_material;id_good;guid;del;quantity;actual_quantity;sign;price;datework;id_user_work;name_work;defect_quantity;id_user_defect;user_defect;tech_defect;exported");
                    for (int i = 0; i < t.Rows.Count; i++)
                    {
                        exported_orderbody += ", ";
                        fl.WriteLine(t.Rows[i][0].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][1].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][2].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][3].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][4].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][5].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][6].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][7].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][8].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][9].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][10].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][11].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][12].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][13].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][14].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][15].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][16].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][17].ToString().Trim().Replace(";", " ") + ";" +
                                     t.Rows[i][18].ToString().Trim().Replace(";", " "));
                        exported_orderbody += t.Rows[i][0].ToString();
                    }
                    fl.Close();
                }
                */

                cmd = new SqlCommand();
                cmd.CommandTimeout = 9000;
                cmd.CommandText = "SELECT [id_payment], [del], [guid], [date], [time], [id_user], [name_user], [number], [payment], [type], [comment], [payment_way], [exported] FROM [vwExportPayments]";
                cmd.Connection = db_connection;
                da = new SqlDataAdapter(cmd);
                t = new DataTable("payment");
                da.Fill(t);
                if (t.Rows.Count > 0)
                {
                    StreamWriter fl =
                        new StreamWriter(prop.Dir_export + "\\payments_" + date + ".csv", true, Encoding.GetEncoding(1251));
                    fl.WriteLine("id_payment;del;guid;date;time;id_user;name_user;number;payment;type;comment;payment_way;exported");
                    pb.Minimum = 0;
                    pb.Maximum = t.Rows.Count;
                    for (int i = 0; i < t.Rows.Count; i++)
                    {
                        Application.DoEvents();
                        exported_payment += ", ";
                        fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                     t.Rows[i][1].ToString().Trim() + ";" +
                                     t.Rows[i][2].ToString().Trim() + ";" +
                                     t.Rows[i][3].ToString().Trim() + ";" +
                                     t.Rows[i][4].ToString().Trim() + ";" +
                                     t.Rows[i][5].ToString().Trim() + ";" +
                                     t.Rows[i][6].ToString().Trim() + ";" +
                                     t.Rows[i][7].ToString().Trim() + ";" +
                                     t.Rows[i][8].ToString().Trim() + ";" +
                                     t.Rows[i][9].ToString().Trim() + ";" +
                                     t.Rows[i][10].ToString().Trim() + ";" +
                                     t.Rows[i][11].ToString().Trim() + ";" +
                                     t.Rows[i][12].ToString().Trim());
                        exported_payment += t.Rows[i][0].ToString();
                        try
                        {
                            pb.Value = i;
                        }
                        catch
                        {
                        }
                    }
                    fl.Close();
                    iniRobot.IniWriteValue("export", "payment", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                }

                cmd = new SqlCommand();
                cmd.CommandTimeout = 9000;
                cmd.CommandText = "SELECT [id_inventory], [del], [guid], [inventory_date], [inventory_user], [exported] FROM [dbo].[inventory] WHERE [exported] = 0";
                cmd.Connection = db_connection;
                da = new SqlDataAdapter(cmd);
                t = new DataTable("inv");
                da.Fill(t);
                if (t.Rows.Count > 0)
                {
                    StreamWriter fl =
                        new StreamWriter(prop.Dir_export + "\\inv_" + date + ".csv", true, Encoding.GetEncoding(1251));
                    fl.WriteLine("id_inventory;del;guid;inventory_date;inventory_user");
                    pb.Minimum = 0;
                    pb.Maximum = t.Rows.Count;
                    for (int i = 0; i < t.Rows.Count; i++)
                    {
                        Application.DoEvents();
                        exported_inv += ", ";
                        fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                     t.Rows[i][1].ToString().Trim() + ";" +
                                     t.Rows[i][2].ToString().Trim() + ";" +
                                     t.Rows[i][3].ToString().Trim() + ";" +
                                     t.Rows[i][4].ToString().Trim());
                        exported_inv += t.Rows[i][0].ToString();

                        SqlCommand cmdi = new SqlCommand();
                        cmdi.CommandTimeout = 9000;
                        cmdi.CommandText = "SELECT [id_inventorybody], [del], [guid], [id_inventory], [order_number], [order_found], [order_status], [order_status_t], [order_in], [order_out], [order_action], [order_action_t], [order_user], order_status_fact, order_status_fact_t, [exported] FROM [dbo].[inventorybody] WHERE [id_inventory] = " + t.Rows[i][0].ToString();
                        cmdi.Connection = db_connection;
                        SqlDataAdapter dai = new SqlDataAdapter(cmdi);
                        DataTable ti = new DataTable("inv");
                        dai.Fill(ti);
                        if (ti.Rows.Count > 0)
                        {
                            pb.Minimum = 0;
                            pb.Maximum = ti.Rows.Count;
                            fl.WriteLine("id_inventorybody;del;guid;id_inventory;order_number;order_found;order_status;order_status_t;order_in;order_out;order_action;order_action_t;order_user;order_status_fact;order_status_fact_t;exported");
                            for (int iij = 0; iij < ti.Rows.Count; iij++)
                            {
                                fl.WriteLine(ti.Rows[iij][0].ToString().Trim() + ";" +
                                ti.Rows[iij][1].ToString().Trim() + ";" +
                                ti.Rows[iij][2].ToString().Trim() + ";" +
                                ti.Rows[iij][3].ToString().Trim() + ";" +
                                ti.Rows[iij][4].ToString().Trim() + ";" +
                                ti.Rows[iij][5].ToString().Trim() + ";" +
                                ti.Rows[iij][6].ToString().Trim() + ";" +
                                ti.Rows[iij][7].ToString().Trim() + ";" +
                                ti.Rows[iij][8].ToString().Trim() + ";" +
                                ti.Rows[iij][9].ToString().Trim() + ";" +
                                ti.Rows[iij][10].ToString().Trim() + ";" +
                                ti.Rows[iij][11].ToString().Trim() + ";" +
                                ti.Rows[iij][12].ToString().Trim() + ";" +
                                ti.Rows[iij][13].ToString().Trim() + ";" +
                                ti.Rows[iij][14].ToString().Trim() + ";" +
                                ti.Rows[iij][15].ToString().Trim());

                                try
                                {
                                    pb.Value = iij;
                                    Application.DoEvents();
                                }
                                catch
                                {
                                }

                            }
                        }

                    }
                    fl.Close();
                    iniRobot.IniWriteValue("export", "inventory", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                }

                cmd = new SqlCommand();
                cmd.CommandTimeout = 9000;
                cmd.CommandText = "SELECT [id_verification], [del], [guid], [verification_date], [verification_user], [exported] FROM [dbo].[verification] WHERE [exported] = 0";
                cmd.Connection = db_connection;
                da = new SqlDataAdapter(cmd);
                t = new DataTable("ver");
                da.Fill(t);
                if (t.Rows.Count > 0)
                {
                    StreamWriter fl =
                        new StreamWriter(prop.Dir_export + "\\ver_" + date + ".csv", true, Encoding.GetEncoding(1251));
                    fl.WriteLine("id_verification;del;guid;verification_date;verification_user");
                    pb.Minimum = 0;
                    pb.Maximum = t.Rows.Count;
                    for (int i = 0; i < t.Rows.Count; i++)
                    {
                        Application.DoEvents();
                        exported_ver += ", ";
                        fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                     t.Rows[i][1].ToString().Trim() + ";" +
                                     t.Rows[i][2].ToString().Trim() + ";" +
                                     t.Rows[i][3].ToString().Trim() + ";" +
                                     t.Rows[i][4].ToString().Trim());
                        exported_ver += t.Rows[i][0].ToString();

                        SqlCommand cmdi = new SqlCommand();
                        cmdi.CommandTimeout = 5000;
                        cmdi.CommandText = "SELECT [id_verificationbody], [del], [guid], [id_verification], [order_number], [order_found], [order_status], [order_status_t], [order_in], [order_out], [order_action], [order_action_t], [order_user], order_status_fact, order_status_fact_t, [exported] FROM [dbo].[verificationbody] WHERE [id_verification] = " + t.Rows[i][0].ToString();
                        cmdi.Connection = db_connection;
                        SqlDataAdapter dai = new SqlDataAdapter(cmdi);
                        DataTable ti = new DataTable("ver");
                        dai.Fill(ti);
                        if (ti.Rows.Count > 0)
                        {
                            pb.Minimum = 0;
                            pb.Maximum = ti.Rows.Count;
                            fl.WriteLine("id_verificationbody;del;guid;id_verification;order_number;order_found;order_status;order_status_t;order_in;order_out;order_action;order_action_t;order_user;order_status_fact;order_status_fact_t;exported");
                            for (int iij = 0; iij < ti.Rows.Count; iij++)
                            {
                                fl.WriteLine(ti.Rows[iij][0].ToString().Trim() + ";" +
                                ti.Rows[iij][1].ToString().Trim() + ";" +
                                ti.Rows[iij][2].ToString().Trim() + ";" +
                                ti.Rows[iij][3].ToString().Trim() + ";" +
                                ti.Rows[iij][4].ToString().Trim() + ";" +
                                ti.Rows[iij][5].ToString().Trim() + ";" +
                                ti.Rows[iij][6].ToString().Trim() + ";" +
                                ti.Rows[iij][7].ToString().Trim() + ";" +
                                ti.Rows[iij][8].ToString().Trim() + ";" +
                                ti.Rows[iij][9].ToString().Trim() + ";" +
                                ti.Rows[iij][10].ToString().Trim() + ";" +
                                ti.Rows[iij][11].ToString().Trim() + ";" +
                                ti.Rows[iij][12].ToString().Trim() + ";" +
                                ti.Rows[iij][13].ToString().Trim() + ";" +
                                ti.Rows[iij][14].ToString().Trim() + ";" +
                                ti.Rows[iij][15].ToString().Trim());

                                try
                                {
                                    pb.Value = iij;
                                    Application.DoEvents();
                                }
                                catch
                                {
                                }

                            }
                        }

                    }
                    fl.Close();
                    iniRobot.IniWriteValue("export", "verification", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                }

                cmd = new SqlCommand();
                cmd.CommandTimeout = 9000;
                cmd.CommandText = "SELECT [id_discard], [del], [guid], [datediscard], [id_material], [quantity], [comment], [id_user], [user_name], [orderno], [id_mashine], [exported] FROM [vwExportDiscard]";
                cmd.Connection = db_connection;
                da = new SqlDataAdapter(cmd);
                t = new DataTable("discard");
                da.Fill(t);
                if (t.Rows.Count > 0)
                {
                    StreamWriter fl =
                        new StreamWriter(prop.Dir_export + "\\discarding_" + date + ".csv", true, Encoding.GetEncoding(1251));
                    fl.WriteLine("id_discard;del;guid;datediscard;id_material;quantity;comment;id_user;user_name;orderno;id_mashine;exported");
                    pb.Minimum = 0;
                    pb.Maximum = t.Rows.Count;
                    for (int i = 0; i < t.Rows.Count; i++)
                    {
                        exported_discard += ", ";
                        fl.WriteLine(t.Rows[i][0].ToString().Trim() + ";" +
                                     t.Rows[i][1].ToString().Trim() + ";" +
                                     t.Rows[i][2].ToString().Trim() + ";" +
                                     t.Rows[i][3].ToString().Trim() + ";" +
                                     t.Rows[i][4].ToString().Trim() + ";" +
                                     t.Rows[i][5].ToString().Trim() + ";" +
                                     t.Rows[i][6].ToString().Trim() + ";" +
                                     t.Rows[i][7].ToString().Trim() + ";" +
                                     t.Rows[i][8].ToString().Trim() + ";" +
                                     t.Rows[i][9].ToString().Trim() + ";" +
                                     t.Rows[i][10].ToString().Trim() + ";" +
                                     t.Rows[i][11].ToString().Trim());
                        exported_discard += t.Rows[i][0].ToString();
                        try
                        {
                            pb.Value = i;
                            Application.DoEvents();
                        }
                        catch
                        {
                        }
                    }
                    fl.Close();
                    iniRobot.IniWriteValue("export", "discard", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                }
                pb.Value = 0;

                cmd = new SqlCommand();
                cmd.CommandText = "UPDATE [order] SET [exported] = 1 WHERE id_order IN (" + exported_order + ")";
                cmd.Connection = db_connection;
                cmd.CommandTimeout = 9000;
                cmd.ExecuteNonQuery();

                cmd = new SqlCommand();
                cmd.CommandText = "UPDATE [orderbody] SET [exported] = 1 WHERE id_orderbody IN (" + exported_orderbody + ")";
                cmd.Connection = db_connection;
                cmd.CommandTimeout = 9000;
                cmd.ExecuteNonQuery();

                cmd = new SqlCommand();
                cmd.CommandText = "UPDATE [payments] SET [exported] = 1 WHERE id_payment IN (" + exported_payment + ")";
                cmd.Connection = db_connection;
                cmd.CommandTimeout = 9000;
                cmd.ExecuteNonQuery();

                cmd = new SqlCommand();
                cmd.CommandText = "UPDATE [discard] SET [exported] = 1 WHERE id_discard IN (" + exported_discard + ")";
                cmd.Connection = db_connection;
                cmd.CommandTimeout = 9000;
                cmd.ExecuteNonQuery();

                cmd = new SqlCommand();
                cmd.CommandText = "UPDATE [inventory] SET [exported] = 1 WHERE id_inventory IN (" + exported_inv + ")";
                cmd.Connection = db_connection;
                cmd.CommandTimeout = 9000;
                cmd.ExecuteNonQuery();

                cmd = new SqlCommand();
                cmd.CommandText = "UPDATE [verification] SET [exported] = 1 WHERE id_verification IN (" + exported_ver + ")";
                cmd.Connection = db_connection;
                cmd.CommandTimeout = 9000;
                cmd.ExecuteNonQuery();

                DirectoryInfo dExport = new DirectoryInfo(prop.Dir_export);
                pb.Minimum = 0;
                pb.Maximum = dExport.GetFiles("*.csv").Length;
                int ij = 0;
                bool doit = false;
                if (dExport.GetFiles("*.csv").Length > 0)
                    doit = true;
                foreach (FileInfo f in dExport.GetFiles("*.csv"))
                {
                    Application.DoEvents();
                    try
                    {
                        pb.Value = ij;
                    }
                    catch
                    {
                    }
                    if (prop.ExportDoCopy)
                    {
                        try
                        {
                            string p = "";
                            p += "\\Copy\\";
                            if (!Directory.Exists(prop.Dir_export + p))
                                Directory.CreateDirectory(prop.Dir_export + p);
                            p += DateTime.Now.Year.ToString() + "\\";
                            if (!Directory.Exists(prop.Dir_export + p))
                                Directory.CreateDirectory(prop.Dir_export + p);
                            p += DateTime.Now.Month < 10
                                     ? "0" + DateTime.Now.Month.ToString() + "\\"
                                     : DateTime.Now.Month.ToString() + "\\";
                            if (!Directory.Exists(prop.Dir_export + p))
                                Directory.CreateDirectory(prop.Dir_export + p);
                            p += DateTime.Now.Day < 10
                                     ? "0" + DateTime.Now.Day.ToString() + "\\"
                                     : DateTime.Now.Day.ToString() + "\\";
                            if (!Directory.Exists(prop.Dir_export + p))
                                Directory.CreateDirectory(prop.Dir_export + p);

                            File.Copy(f.FullName, prop.Dir_export + p + f.Name, true);
                            wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                           "] - Файл " + f.Name + " успешно скопирован в резервный каталог.\n");
                        }
                        catch (Exception ex)
                        {
                            ErrorNfo.WriteErrorInfo(ex);
                            wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                           "] ! Ошибка копирования файла " + f.Name + " в резервный каталог." + ex.Message + "\n" + ex.Source + "\n");
                        }
                    }
                    if (prop.Export_from_ftp)
                    {
                        try
                        {
                            PSA.Lib.Util.ftpClient ftp = new PSA.Lib.Util.ftpClient(prop.FTP_Server_Export, prop.FTP_User, prop.FTP_Password);
                            if (ftp.Upload(prop.Dir_export + "\\" + f.Name, prop.FTP_Path_Export + "/" + f.Name))
                            {
                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                    "] - Файл " + f.Name + " успешно скопирован на ftp сервер.\n");
                                if (ftp.Download(prop.Dir_export, f.Name + ".tmp", prop.FTP_Path_Export, f.Name))
                                {
                                    if (checkFiles(prop.Dir_export + "\\" + f.Name, prop.Dir_export + "\\" + f.Name + ".tmp"))
                                    {

                                        if (prop.ExportClearDirAfterCopy)
                                        {
                                            try
                                            {
                                                f.Delete();
                                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                                    "] - Файл " + f.Name + " успешно удален.\n");
                                                File.Delete(prop.Dir_export + "\\" + f.Name + ".tmp");
                                            }
                                            catch (Exception ex)
                                            {
                                                ErrorNfo.WriteErrorInfo(ex);
                                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                                "] ! Ошибка удаления файла " + f.Name + "." + ex.Message + "\n" +
                                                ex.Source + "\n");
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                "] ! Ошибка копирования файла " + f.Name + " на ftp сервер.\n");
                            }
                        }
                        catch (Exception ex)
                        {
                            ErrorNfo.WriteErrorInfo(ex);
                            wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                "] ! Ошибка копирования файла " + f.Name + " на ftp сервер." + ex.Message + "\n" +
                                ex.Source + "\n");
                        }
                    }
                    ij++;
                }
                if (doit)
                    iniRobot.IniWriteValue("export", "csv", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                doit = false;

                pb.Minimum = 0;
                pb.Maximum = dExport.GetFiles("er*.info").Length;
                int ii = 0;
                if (dExport.GetFiles("er*.info").Length > 0)
                    doit = true;
                foreach (FileInfo f in dExport.GetFiles("er*.info"))
                {
                    Application.DoEvents();
                    try
                    {
                        pb.Value = ii;
                    }
                    catch
                    {
                    }
                    if (f.Name != "er_" + DateTime.Now.Year.ToString("D4") + "-" + DateTime.Now.Month.ToString("D2") + "-" + DateTime.Now.Day.ToString("D2") + ".info")
                    {
                        if (prop.ExportDoCopy)
                        {
                            try
                            {
                                string p = "";
                                p += "\\Copy\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Year.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Month < 10
                                         ? "0" + DateTime.Now.Month.ToString() + "\\"
                                         : DateTime.Now.Month.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Day < 10
                                         ? "0" + DateTime.Now.Day.ToString() + "\\"
                                         : DateTime.Now.Day.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);

                                File.Copy(f.FullName, prop.Dir_export + p + f.Name, true);
                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                               "] - Файл " + f.Name + " успешно скопирован в резервный каталог.\n");
                            }
                            catch (Exception ex)
                            {
                                ErrorNfo.WriteErrorInfo(ex);
                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                               "] ! Ошибка копирования файла " + f.Name + " в резервный каталог." + ex.Message + "\n" + ex.Source + "\n");
                            }
                        }
                        if (prop.Export_from_ftp)
                        {
                            try
                            {
                                PSA.Lib.Util.ftpClient ftp = new PSA.Lib.Util.ftpClient(prop.FTP_Server_Export, prop.FTP_User, prop.FTP_Password);
                                if (ftp.Upload(prop.Dir_export + "\\" + f.Name, prop.FTP_Path_Export + "/info/" + f.Name))
                                {
                                    wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                        "] - Файл " + f.Name + " успешно скопирован на ftp сервер.\n");
                                    if (ftp.Download(prop.Dir_export, f.Name + ".tmp", prop.FTP_Path_Export, "/info/" + f.Name))
                                    {
                                        if (checkFiles(prop.Dir_export + "\\" + f.Name, prop.Dir_export + "\\" + f.Name + ".tmp"))
                                        {

                                            if (prop.ExportClearDirAfterCopy)
                                            {
                                                try
                                                {
                                                    f.Delete();
                                                    wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                                        "] - Файл " + f.Name + " успешно удален.\n");
                                                    File.Delete(prop.Dir_export + "\\" + f.Name + ".tmp");
                                                }
                                                catch (Exception ex)
                                                {
                                                    ErrorNfo.WriteErrorInfo(ex);
                                                    wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                                    "] ! Ошибка удаления файла " + f.Name + "." + ex.Message + "\n" +
                                                    ex.Source + "\n");
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                    "] ! Ошибка копирования файла " + f.Name + " на ftp сервер.\n");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErrorNfo.WriteErrorInfo(ex);
                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                    "] ! Ошибка копирования файла " + f.Name + " на ftp сервер." + ex.Message + "\n" +
                                    ex.Source + "\n");
                            }
                        }
                    }
                    ii++;
                }
                if (doit)
                    iniRobot.IniWriteValue("export", "er", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                doit = false;

                pb.Minimum = 0;
                pb.Maximum = dExport.GetFiles("*clear*.info").Length;
                ii = 0;
                if (dExport.GetFiles("*clear*.info").Length > 0)
                    doit = true;
                foreach (FileInfo f in dExport.GetFiles("*clear*.info"))
                {
                    Application.DoEvents();
                    try
                    {
                        pb.Value = ii;
                    }
                    catch
                    {
                    }
                    if (f.Name != "er_" + DateTime.Now.Year.ToString("D4") + "-" + DateTime.Now.Month.ToString("D2") + "-" + DateTime.Now.Day.ToString("D2") + ".info")
                    {
                        if (prop.ExportDoCopy)
                        {
                            try
                            {
                                string p = "";
                                p += "\\Copy\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Year.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Month < 10
                                         ? "0" + DateTime.Now.Month.ToString() + "\\"
                                         : DateTime.Now.Month.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);
                                p += DateTime.Now.Day < 10
                                         ? "0" + DateTime.Now.Day.ToString() + "\\"
                                         : DateTime.Now.Day.ToString() + "\\";
                                if (!Directory.Exists(prop.Dir_export + p))
                                    Directory.CreateDirectory(prop.Dir_export + p);

                                File.Copy(f.FullName, prop.Dir_export + p + f.Name, true);
                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                               "] - Файл " + f.Name + " успешно скопирован в резервный каталог.\n");
                            }
                            catch (Exception ex)
                            {
                                ErrorNfo.WriteErrorInfo(ex);
                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                               "] ! Ошибка копирования файла " + f.Name + " в резервный каталог." + ex.Message + "\n" + ex.Source + "\n");
                            }
                        }
                        if (prop.Export_from_ftp)
                        {
                            try
                            {
                                PSA.Lib.Util.ftpClient ftp = new PSA.Lib.Util.ftpClient(prop.FTP_Server_Export, prop.FTP_User, prop.FTP_Password);
                                if (ftp.Upload(prop.Dir_export + "\\" + f.Name, prop.FTP_Path_Export + "/info/" + f.Name))
                                {
                                    wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                        "] - Файл " + f.Name + " успешно скопирован на ftp сервер.\n");
                                    if (ftp.Download(prop.Dir_export, f.Name + ".tmp", prop.FTP_Path_Export, "/info/" + f.Name))
                                    {
                                        if (checkFiles(prop.Dir_export + "\\" + f.Name, prop.Dir_export + "\\" + f.Name + ".tmp"))
                                        {

                                            if (prop.ExportClearDirAfterCopy)
                                            {
                                                try
                                                {
                                                    f.Delete();
                                                    wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                                        "] - Файл " + f.Name + " успешно удален.\n");
                                                    File.Delete(prop.Dir_export + "\\" + f.Name + ".tmp");
                                                }
                                                catch (Exception ex)
                                                {
                                                    ErrorNfo.WriteErrorInfo(ex);
                                                    wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                                    "] ! Ошибка удаления файла " + f.Name + "." + ex.Message + "\n" +
                                                    ex.Source + "\n");
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                    "] ! Ошибка копирования файла " + f.Name + " на ftp сервер.\n");
                                }
                            }
                            catch (Exception ex)
                            {
                                ErrorNfo.WriteErrorInfo(ex);
                                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() +
                                    "] ! Ошибка копирования файла " + f.Name + " на ftp сервер." + ex.Message + "\n" +
                                    ex.Source + "\n");
                            }
                        }
                    }
                    ii++;
                }
                if (doit)
                    iniRobot.IniWriteValue("export", "clear", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString());
                doit = false;

            }
            else
            {
                wtl("[" + DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "] ! Каталог экспорта не найден!\n");
            }
            pb.Value = pb.Minimum;
        }
        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
            {
            }
        }