private bool clkZKSoft(int pRid, int pNro, string pDes, string pDir, int pPor, long pPsw, bool vClean = false, int pCommPassword = 0) { bool clkZKSoft = false; try { string sdwEnrollNumber = ""; int idwVerifyMode; int idwInOutMode; int idwYear; int idwMonth; int idwDay; int idwHour; int idwMinute; int idwSecond; int idwWorkcode = 0; string vFic; CZKEM Reloj = new CZKEM(); DevOps devolucionOperacion = new DevOps(); RelojesIngresos objFichada = new RelojesIngresos(); List <RelojResponse> relojResponse = new List <RelojResponse>(); Logger.GetInstance().AddLog(true, "clkZKSoft()", "Conectandose " + pDir + ":" + pPor); if (pCommPassword > 0) { Reloj.SetCommPassword(pCommPassword); } if (Reloj.Connect_Net(pDir, pPor)) { Logger.GetInstance().AddLog(true, "clkZKSoft()", "Conectado a " + pDir + ":" + pPor); Reloj.EnableDevice(pNro, false); // ----> Leo Datos if (Reloj.ReadGeneralLogData(pNro)) { // SSR_GetGeneralLogData // ----> Leo Datos while (Reloj.SSR_GetGeneralLogData(pNro, out sdwEnrollNumber, out idwVerifyMode, out idwInOutMode, out idwYear, out idwMonth, out idwDay, out idwHour, out idwMinute, out idwSecond, ref idwWorkcode)) { if (idwYear == DateTime.Now.Year) { RelojResponse relojResponseItem = new RelojResponse(); vFic = string.Format(idwYear.ToString("0000")) + "-" + string.Format(idwMonth.ToString("00")) + "-" + string.Format(idwDay.ToString("00")) + " " + String.Format(idwHour.ToString("00")) + ":" + String.Format(idwMinute.ToString("00")) + ":" + String.Format(idwSecond.ToString("00")); //Logger.GetInstance().AddLog(true, "clkZKSoft()", "Fecha del Registro: " + vFic); relojResponseItem.Fich = vFic; relojResponseItem.Nro = pNro; relojResponseItem.SdwEnrollNumber = sdwEnrollNumber; relojResponseItem.IdwVerifyMode = idwVerifyMode; relojResponseItem.IdwInOutMode = idwInOutMode; relojResponseItem.IdwWorkcode = idwWorkcode; relojResponse.Add(relojResponseItem); } } //SAVE IN DATABASE. SaveInDataBase(pRid, relojResponse); if (vClean) { //Logger.GetInstance().AddLog(true, "clkZKSoft()", "BLOQUE COMENTADO: Vaciar Reloj " + pNro + " Ip: " + pDir + ":" + pPor); Logger.GetInstance().AddLog(true, "clkZKSoft()", "Vaciar Reloj " + pNro + " Ip: " + pDir + ":" + pPor); if (Reloj.ClearGLog(pNro)) { Reloj.RefreshData(pNro); Logger.GetInstance().AddLog(true, "clkZKSoft()", "Se vació RelojId " + pNro + " Ip: " + pDir + ":" + pPor); } else { int idwErrorCode = 0; Reloj.GetLastError(idwErrorCode); Logger.GetInstance().AddLog(false, "clkZKSoft()", "Error al vaciar " + pDir + ":" + pPor + " " + idwErrorCode); } } } else { Logger.GetInstance().AddLog(true, "clkZKSoft()", "No hay fichadas en " + pDir + ":" + pPor); } Logger.GetInstance().AddLog(true, "clkZKSoft()", "Desconectar Reloj " + pDir + ":" + pPor); Reloj.Disconnect(); clkZKSoft = true; } else { Logger.GetInstance().AddLog(true, "clkZKSoft()", "Sin conexión a " + pDir + ":" + pPor); } } catch (Exception ex) { Logger.GetInstance().AddLog(false, "clkZKSoft()", ex.Message); } return(clkZKSoft); }
private void ProcesarTXT() { StreamReader fileReader = null; try { Logger.GetInstance().AddLog(true, "ProcesarTXT()", "incio"); string pathSource = ConfigurationManager.AppSettings["dataTxt"].Split(';')[0]; string pathDest = Path.Combine(m_exePath, "marcas_" + modFechas.DateToSql(DateTime.Now).Replace("-", "_") + " " + DateTime.Now.Hour + "." + DateTime.Now.Minute + ".log"); short eliminar = Convert.ToInt16(ConfigurationManager.AppSettings["dataTxt"].Split(';')[1]); File.Move(pathSource, pathDest); fileReader = new StreamReader(pathDest); List <RelojResponse> relojResponse = new List <RelojResponse>(); do { string vLin = fileReader.ReadLine(); if (vLin.Length > 48) { //Logger.GetInstance().AddLog(true, "ProcesarTXT()", "preparandose para leer valores"); long numero_empleado; long.TryParse(vLin.Substring(0, 10), out numero_empleado); DateTime fecha = modFechas.NtoD(Convert.ToInt32(vLin.Substring(11, 10).Replace("-", ""))); string fechaHora = vLin.Substring(11, 19); string tipo_marca = vLin.Substring(31, 2); string numero_reloj = vLin.Substring(34, 3); string numero_movil = vLin.Substring(42, 8); //Logger.GetInstance().AddLog(true, "ProcesarTXT()", "todos los valores leidos"); if (fecha.Year == DateTime.Now.Year) { //Logger.GetInstance().AddLog(true, "ProcesarTXT()", "preparandose para encolar valores"); RelojResponse relojResponseItem = new RelojResponse(); relojResponseItem.Fich = fechaHora; relojResponseItem.Nro = Convert.ToInt32(numero_reloj); relojResponseItem.SdwEnrollNumber = numero_empleado.ToString(); //relojResponseItem.IdwVerifyMode = idwVerifyMode; //TODO: que es? //01 entrada, 02 salida-int, 03 entrada_int, 04 salida int nTipoMarca = Convert.ToInt32(tipo_marca); //switch (nTipoMarca) //{ // case 1: // case 3: // relojResponseItem.IdwInOutMode = 0; // break; // case 2: // case 4: // relojResponseItem.IdwInOutMode = 1; // break; // default: // Logger.GetInstance().AddLog(false, "ProcesarTXT()", string.Format("El valor {0} para tipo de marca es incorrecto, se asigna el valor 0", tipo_marca)); // relojResponseItem.IdwInOutMode = 0; // break; //} if (nTipoMarca == 1 || nTipoMarca == 4) { relojResponseItem.IdwInOutMode = nTipoMarca == 1 ? 0 : 1; relojResponseItem.IdwWorkcode = Convert.ToInt32(numero_movil); relojResponse.Add(relojResponseItem); //Logger.GetInstance().AddLog(true, "ProcesarTXT()", string.Format("Fichada encolada: Fecha: {0} Legajo: {1}", relojResponseItem.Fich, relojResponseItem.SdwEnrollNumber)); } } } } while (!fileReader.EndOfStream); Logger.GetInstance().AddLog(true, "ProcesarTXT()", "listo para enviar lista a guardar."); SaveInDataBase(null, relojResponse); if (eliminar == 1) { fileReader.Close(); fileReader = null; Logger.GetInstance().AddLog(true, "ProcesarTXT()", "eliminando archivo local. " + pathDest); File.Delete(pathDest); } } catch (Exception ex) { Logger.GetInstance().AddLog(false, "ProcesarTXT()", ex.Message); } finally { // Close streams if (fileReader != null) { fileReader.Close(); } } }