using ConvertLog.common; using System; using System.Data; namespace ConvertLog.thread { public class ProcessFile : MainThread { static readonly log4net.ILog logger = log4net.LogManager.GetLogger(typeof(ProcessFile)); public override void Process() { if (!ConfigData.loadOK) { return; } Sleep(5000); try { logger.Info("start"); DataSet ds = DataAccess.importGetFile("1"); if (ds != null && ds.Tables[0].Rows.Count > 0) { logger.Info("have file"); string uloadId = "-1"; List _listFile = new List(); try { foreach (DataRow dr in ds.Tables[0].Rows) { uloadId = dr["TERM_UPLOAD_ID"].ToString(); string uloadDetailId = dr["ID"].ToString(); string type = dr["TYPE"].ToString(); //1=blacklust,2=whitelist,3=nhan vien string fielId = dr["FILE_ID"].ToString(); //bat dau doc file string pathFileFull = ConfigData.pathFileImport + fielId; logger.Info("start process file : " + pathFileFull); StreamReader objReader = new StreamReader(pathFileFull); string sLine = ""; int totalRow = 0; int totalBlock = 0; int totalRowErr = 0; List _lstObj = new List(); while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null) { totalRow++; long n; bool isNumeric = long.TryParse(sLine, out n); if (isNumeric) { try { importObj _obj = new importObj(); _obj.uploadId = uloadId; _obj.uploadDetailId = uloadDetailId; _obj.type = type; _obj.ticket = sLine; _lstObj.Add(_obj); logger.Info("Line da duoc add : " + sLine); } catch (Exception ex) { } } else { logger.Info("Loi sLine roi : "+ sLine); totalRowErr++; } } if (_lstObj.Count > 500) { //upload_off(_lstObj); oneImportObj _oneImport = new oneImportObj(uloadId, uloadDetailId, _lstObj); ConfigData._ImportQueue.Enqueue(_oneImport); totalBlock++; _lstObj = new List(); logger.Info("add bunk : " + pathFileFull); } } //upload_off(_lstObj); oneImportObj _oneImportEnd = new oneImportObj(uloadId, uloadDetailId, _lstObj); ConfigData._ImportQueue.Enqueue(_oneImportEnd); totalBlock++; logger.Info("add bunk end : " + pathFileFull); //ket thuc file totalFileImportObj _totalFile = new totalFileImportObj(uloadId,uloadDetailId, totalBlock.ToString(),totalRow.ToString(),totalRowErr.ToString(),"1"); _listFile.Add(_totalFile); //DataAccess.importFinishFile(uloadId, uloadDetailId, totalRow.ToString(), totalRowErr.ToString()); } } catch (Exception ex) { logger.Info("Process file exeption: " + ex.ToString()); } //ket thuc het file ConfigData._arrtotal.Add(uloadId, _listFile); //DataAccess.importFinishAllFile(uloadId); } else { logger.Info("have not file"); } } catch (Exception ex) { logger.Info("Process file total exeption: " + ex.ToString()); } } public static void upload_off(List _data) { List> DataColumms = new List>(); var v_upload_id = new List(); var v_upload_detail_id = new List(); var v_type = new List(); var v_ticket = new List(); foreach (importObj _obj in _data) { v_upload_id.Add(_obj.uploadId); v_upload_detail_id.Add(_obj.uploadDetailId); v_type.Add(_obj.type); v_ticket.Add(_obj.ticket); } DataColumms.Add(v_upload_id); DataColumms.Add(v_upload_detail_id); DataColumms.Add(v_type); DataColumms.Add(v_ticket); DataAccess.upload_data("LUCKY_PKG.IMPORT_INSERT", DataColumms); } } }