public void F_SaveLog() { //Read FILE LOG_Source v_FileInput = new DirectoryInfo(ConfigurationManager.AppSettings["PathInput"].ToString()).GetFiles().OrderByDescending(f => f.LastWriteTime).First(); if (v_FileInput.Extension != ".csv") { return; } DataTable v_DT_Result = new DataTable(); v_DT_Result.Columns.Add("Times", typeof(string)); v_DT_Result.Columns.Add("Model", typeof(string)); v_DT_Result.Columns.Add("Status", typeof(string)); List <string> columns = new List <string>(); CsvFileReader v_Reader = WriteDatatableToFileCSV.ReadFile(v_FileInput.FullName); while (v_Reader.ReadRow(columns)) { if (columns[0].Trim().Length > 0 && columns[1].Trim().Length > 0) { DataRow v_Dr = v_DT_Result.NewRow(); v_Dr[0] = columns[1].Trim(); v_Dr[1] = columns[5].Trim(); v_Dr[2] = columns[3].Trim(); v_DT_Result.Rows.Add(v_Dr); } } v_Reader.Dispose(); v_DT_Result.Rows.RemoveAt(0); v_DT_Result.Rows.RemoveAt(0); //Get PASS OR FAIL string v_Status = "F"; string v_Model = string.Empty; string v_Serial = string.Empty; string v_Station = string.Empty; //GET Model v_Model = v_DT_Result.Rows[v_DT_Result.Rows.Count - 1][1].ToString().Trim().Split('_')[1]; //GET Serial v_Serial = v_DT_Result.Rows[v_DT_Result.Rows.Count - 1][1].ToString().Trim().Split('_')[0]; //Get Status try { if (v_DT_Result.Rows[v_DT_Result.Rows.Count - 1][2].ToString().Trim() == "OK") { v_Status = "P"; } else { v_Status = "F"; } } catch { v_Status = "F"; } //Get Station try { //v_Station = Cbx_Station.SelectedValue.ToString(); } catch { } Tbx_BarCode.Text = v_Serial + "_" + v_Model; Tbx_BarCode.ForeColor = Color.Green; string v_TimeCurrent = DateTime.Now.ToString("yyMMddHHmmss"); string v_FileContent = v_Model + "|" + v_Serial + "_" + v_Model + "|" + v_TimeCurrent + "|" + v_Status + "|" + v_Station; //Delete OLD File log try { bool v_StatusOld = false; List <string> v_ListPaths = Directory.GetFiles(ConfigurationManager.AppSettings["PathOutput"].ToString(), "*.txt", SearchOption.AllDirectories).ToList(); string v_PathPASS = ""; string v_PathNG = ""; try { v_PathPASS = v_ListPaths.Where(p => File.ReadAllLines(p).Any(line => line.IndexOf(v_Serial + "_" + v_Model) >= 0 && line.IndexOf("|P|") >= 0 && line.IndexOf(v_Station) >= 0)).First(); } catch { } try { v_PathNG = v_ListPaths.Where(p => File.ReadAllLines(p).Any(line => line.IndexOf(v_Serial + "_" + v_Model) >= 0 && line.IndexOf("|F|") >= 0 && line.IndexOf(v_Station) >= 0)).First(); } catch { } if (v_PathPASS.Trim().Length > 0) { ControlFile.F_DeleteFile(v_PathPASS); v_Total = v_Total - 1; if (v_Status == "P") { v_Pass = v_Pass - 1; } else if (v_Status == "F") { v_Pass = v_Pass - 1; v_NG = v_NG; } if (v_Total < 0) { v_Total = 0; } if (v_Pass < 0) { v_Pass = 0; } if (v_NG < 0) { v_NG = 0; } } else if (v_PathNG.Trim().Length > 0) { ControlFile.F_DeleteFile(v_PathNG); v_Total = v_Total - 1; if (v_Status == "P") { v_Pass = v_Pass; v_NG = v_NG - 1; } else if (v_Status == "F") { v_NG = v_NG - 1; } if (v_Total < 0) { v_Total = 0; } if (v_Pass < 0) { v_Pass = 0; } if (v_NG < 0) { v_NG = 0; } } } catch { } //Create NEW File log ControlFile.F_CreateAndWriteFile(ConfigurationManager.AppSettings["PathOutput"].ToString() + "\\" + v_TimeCurrent + "_" + v_Model.Replace(" ", "").Substring(0, 9) + ".txt", v_FileContent); if (v_Status == "P") { Panel_Result.BackColor = System.Drawing.Color.Blue; Lbl_Result.BackColor = System.Drawing.Color.Blue; Lbl_Result.Text = "PASS"; } else if (v_Status == "F") { Panel_Result.BackColor = System.Drawing.Color.Red; Lbl_Result.BackColor = System.Drawing.Color.Red; Lbl_Result.Text = "FAIL"; } //Count PCS F_CountModelsChecked(v_Status); F_LoadTotalPCS(); }