示例#1
0
        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);
        }
示例#2
0
        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();
                }
            }
        }