using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using ABCfutar; using System.Threading; namespace ABCFutar_Sync { public partial class SyncWindow : Form { static database db = new database(); static List status = new List(); string files = Directory.GetCurrentDirectory() + "\\system\\files.db"; static string toroltFile = @"C:\raktar\keszlet_torolt.csv"; static string keszletFile = @"C:\raktar\keszlet.csv"; public SyncWindow() { InitializeComponent(); timer1.Start(); lb_Stat.Items.Add(DateTime.Now.ToString("HH:mm:ss") + ": Program betöltve..."); Thread.Sleep(1000); Thread t = new Thread(construct); t.Start(); } private void construct() { lb_Stat.Invoke((MethodInvoker)(async()=> { //lb_Stat.Items.Add(DateTime.Now.ToString("HH:mm:ss") + ": Elérési útvonalak betöltése..."); //LoadFiles(); //Adatbázis kapcsolat db.dbConn(); if (db.checkConn()) { lb_Stat.Items.Add(DateTime.Now.ToString("HH:mm:ss") + ": Adatbázis kapcsolat létrehozva..."); } else { lb_Stat.Items.Add(DateTime.Now.ToString("HH:mm:ss") + ": Adatbázis kapcsolat létrehozása sikertelen..."); } db.dbClose(); //Törölt elemek eltávolítása lb_Stat.Items.Add(DateTime.Now.ToString("HH:mm:ss") + ": Törölt elemek eltávolítása..."); Task del = RDeleted(); string deleted = await del; lb_Stat.Items.Add(deleted); //Új elemek felvitele és meglévőek frissítése lb_Stat.Items.Add(DateTime.Now.ToString("HH:mm:ss") + ": Szinkronizálás az SQL szerverrel..."); Task add = Create(); string added = await add; lb_Stat.Items.Add(added); Thread t1 = new Thread(ProgramExit); t1.Start(); })); } public void LoadFiles() { var reader = new StreamReader(File.OpenRead(files)); while (!reader.EndOfStream) { var line = reader.ReadLine(); var values = line.Split(';'); toroltFile = values[0]; lb_Stat.Items.Add(DateTime.Now.ToString("HH:mm:ss") + ": Törölt termékek listája: " + values[0]); keszletFile = values[1]; lb_Stat.Items.Add(DateTime.Now.ToString("HH:mm:ss") + ": Készlet lista: " + values[1]); } } public void ProgramExit() { Thread.Sleep(5000); Application.Exit(); } static async Task RDeleted() { db.dbConn(); var reader = new StreamReader(File.OpenRead(toroltFile)); while (!reader.EndOfStream) { var line = reader.ReadLine(); var values = line.Split(';'); if (CheckRow(values[1].ToString())) { db.sqlDelete("termekek", "WHERE barcode='" + values[1].ToString() + "'"); } }; db.dbClose(); return DateTime.Now.ToString("HH:mm:ss") + ": Törölt elemek eltávolítva... OK"; } static bool CheckRow(string barcode) { db.dbConn(); if (db.sqlNumRows("termekek", "*", "WHERE barcode='" + barcode + "'") > 0) { return true; }else { return false; } } static async Task Create() { var reader = new StreamReader(File.OpenRead(keszletFile)); var i = 0; while (!reader.EndOfStream) { if (i >= 1) { var line = reader.ReadLine(); var values = line.Split(';'); values[2] = values[2].Replace(@"'", string.Empty); if (values[0] != "code") { if (CheckRow(values[1].ToString())) { //Van már ilyen termék db.dbConn(); string sql = "name_hu='" + values[2] + "',gross_price_1='" + values[6] + "',gross_price_2='" + values[7] + "',dbszam='" + values[4] + "'"; db.sqlUpdate("termekek", sql, "WHERE barcode='" + values[1] + "'"); db.dbClose(); } else { //Nincs még ilyen termék db.dbConn(); string sql = "category_id2='UJTER',barcode='" + values[1] + "',name_hu='" + values[2] + "',gross_price_1='" + values[6] + "',gross_price_2='" + values[7] + "',dbszam='" + values[4] + "'"; db.sqlInsert("termekek", sql); db.dbClose(); } } } i++; } return DateTime.Now.ToString("HH:mm:ss") + ": Termékek frissítve...."; } } }