/// <summary> /// save changes to .xml file /// </summary> /// <param name="wp"></param> public static void xml_save_node(write_params wp) { string xml_fname = cfg_file_name; int i = 0; XDocument xml = XDocument.Load(xml_fname); var db_conf_node = from c in xml.Root.Descendants("db_conf") where c.Element("id").Value.Contains(wp.db_conf_id.ToString()) select c; var param_node = db_conf_node.Descendants("param"); foreach (var cc in param_node) { if (i == wp.param_num) { cc.Element("s").Value = wp.param_val; } i++; } xml.Save(xml_fname); }
/// <summary> /// Write data to SQL from List<string> /// </summary> /// <param name="flag"></param> static void run_queries_from_cfg(int flag) { // работа с базами foreach (dbproc dbinfo in CfgRead.db_list) { dbinfo.conn(); List <List <string> > docs_num_list; List <List <string> > result_list; string last_s = ""; // List<string> heapCsv_tmp = new List<string>(); //------------------------------------------------------------------------------- // --------------------- 1 Get Data From MS SQL Wapro ---------------------- //------------------------------------------------------------------------------- if (dbinfo.id == 1 && flag == 1) { // get list of new records into docs_num_list as params docs_num_list = reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[0], dbinfo.param[0]), false, true, false); // foreach (List<string> s in docs_num_list) Console.WriteLine(s[0]); foreach (List <string> s in docs_num_list) { // Console.WriteLine("* * * * * * * * * " + s + " * * * *"); result_list = reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[1], s[0]), true, true, true); result_list.AddRange(reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[2], s[0]), true, true, true)); result_list.AddRange(reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[3], s[0]), true, true, true)); // Add doc to out_data out_data od = new out_data { doc_heap_list = result_list , doc_fname = result_list[1][2].Replace('/', '-').Trim() + "." + CfgRead.file_export_type // result_list[1].Split(';')[2].Replace('/','-')+".csv", , doc_heap = CfgRead.split_double_list(result_list, CfgRead.file_export_type) , id_plat = result_list[1][0] , id_doc_handl = result_list[1][1] }; CfgRead.out_data_list.Add(od); last_s = s[0]; } // write params to config .xml if (last_s != "") { write_params wp = new write_params(); wp.db_conf_id = dbinfo.id; wp.param_val = last_s; CfgRead.db_list_write_params.Add(wp); } } //------------------------------------------------------------------------------- // ------------------------ 2 write data to MySQL ------------------------- //------------------------------------------------------------------------------- // Console.WriteLine("# # # # # # # # dbinfo.id = " + dbinfo.id.ToString() + " # # # # # # # # "); if (dbinfo.id == 2 && flag == 1) { //--------------- write to table wapro_doc --------------------------------- foreach (out_data dd in CfgRead.out_data_list) { result_list = reader_to_list(dbinfo.label, dbinfo.connection , String.Format(dbinfo.qu[1], dd.doc_fname, dd.doc_heap.Replace("'", "\""), dd.id_plat, dd.id_doc_handl) , false, false, false); } } //------------------------------------------------------------------------------- // -------------- 3 get data from MySQL and write to files ----------------- //------------------------------------------------------------------------------- if (dbinfo.id == 3 && flag == 2) { // Console.WriteLine(" dbinfo.id = " + dbinfo.id.ToString() ); last_s = ""; result_list = reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[0], dbinfo.param[0]), false, true, false); if (result_list.Count > 0) { foreach (List <string> ss in result_list) { File.WriteAllText(CfgRead.file_export_dir + ss[1], ss[2]); } // get id of last record in result_list last_s = result_list[result_list.Count - 1][0].ToString(); if (last_s != "") { write_params wp = new write_params(); wp.db_conf_id = dbinfo.id; wp.param_val = last_s; CfgRead.db_list_write_params.Add(wp); } } } //------------------- R E S T E X P O R T WAPRO->Magento -------------------- // ------------ 1. id=4 get data from MySQL and write to files ----------------- //---------------------------------------------------------------------------------- if (dbinfo.id == 4 && flag == 3) { result_list = reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[0]), true, true, false); List <string> stmp = new List <string>(); foreach (List <string> s in result_list) { stmp.Add(s[0] + ";" + s[1]); } // rest_ffname File.WriteAllLines(CfgRead.csv_source_ffn, stmp.ToArray()); } if (dbinfo.id == 5 && flag == 3) { // this trick change \ to \\ in path // string rest_ffname_double_slash=System.Text.RegularExpressions.Regex.Replace(rest_ffname, @"\\", @"\\"); // rest_ffname_double_slash = CfgRead.csv_source_ffn; // CfgRead.mess(rest_ffname_double_slash); // File.WriteAllText("d:\\aaa.txt", string.Format(dbinfo.qu[2], ss, dbinfo.param[0])); // & result_list = reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[0], dbinfo.param[0]), true, false, false); result_list = reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[1], dbinfo.param[0]), true, false, false); result_list = reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[2], CfgRead.csv_source_ffn, dbinfo.param[0]), true, false, false); result_list = reader_to_list(dbinfo.label, dbinfo.connection, dbinfo.qu[3], false, false, false); result_list = reader_to_list(dbinfo.label, dbinfo.connection, String.Format(dbinfo.qu[4], dbinfo.param[0]), false, false, false); } //------------------- E N D R E S T E X P O R T WAPRO->Magento -------------------- } }