Пример #1
0
 public ZoneAccess(string v_HHID, string v_zone, string v_Gate, string v_hora, TiposAcceso v_tAcceso)
 {
     HHID = v_HHID;
     ZoneID = v_zone;
     GateID = v_Gate;
     Hora = v_hora;
     tipoAcceso = v_tAcceso;
 }
Пример #2
0
        public TiposAcceso tipoAcceso; // Si fue permitido, denegado, etc.

        #endregion Fields

        #region Constructors

        public Acceso(int pidEmpleado, string v_HHID, string v_tarjeta, string v_lat, string v_long, string v_hora, byte[] v_imagen, TiposAcceso v_tAcceso)
        {
            HHID = v_HHID;
            Tarjeta = v_tarjeta;
            Latitud = v_lat;
            Longitud = v_long;
            Hora = v_hora;
            imagen = v_imagen;
            tipoAcceso = v_tAcceso;
            idEmpleado = pidEmpleado;
        }
Пример #3
0
        public TiposAcceso tipoAcceso; // Si fue permitido, denegado, etc.

        #endregion Fields

        #region Constructors

        public Visita(string v_HHID, string v_Nombre, string v_Apellido, string v_Documento, string v_Empresa,  string v_tarjeta, string v_lat, string v_long, string v_hora, byte[] v_imagen, TiposAcceso v_tAcceso, int v_idOrg)
        {
            HHID = v_HHID;
            Nombre = v_Nombre;
            Apellido = v_Apellido;
            Documento = v_Documento;
            Empresa = v_Empresa;
            Tarjeta = v_tarjeta;
            Latitud = v_lat;
            Longitud = v_long;
            Hora = v_hora;
            imagen = v_imagen;
            tipoAcceso = v_tAcceso;
            idOrg = v_idOrg;
        }
Пример #4
0
        // Traduce los tiposAccesos al ingles
        public string translateToEnglish(string text)
        {
            string res = "";

            try
            {
                TiposAcceso t = (TiposAcceso)Enum.Parse(typeof(TiposAcceso), text);
                if (t == TiposAcceso.Entrada)
                {
                    res = "Entry";
                }
                if (t == TiposAcceso.Salida)
                {
                    res = "Exit";
                }
                if (t == TiposAcceso.EINVALIDO)
                {
                    res = "Invalid Entry";
                }
                if (t == TiposAcceso.SINVALIDO)
                {
                    res = "Invalid Exit";
                }
                if (t == TiposAcceso.INVALIDO)
                {
                    res = "Invalid";
                }
                if (t == TiposAcceso.Alarma)
                {
                    res = "Alarm";
                }
                if (t == TiposAcceso.Diferido)
                {
                    res = "Deferred";
                }
            }
            catch (Exception)
            {
                res = text;
            }

            return(res);
        }
Пример #5
0
        /// <summary>
        /// Paso final para agregar un acceso desde un GPS. Ya se reviso el tema geometrico y se tiene el Empleado, su tarjeta, la latitud, longitud, hora, tipode evento y organizacion
        /// Falta revisar que tenga accesslevel y actualizar la tabla de Accesos.
        /// </summary>
        /// <param name="v_IDEmpleadoGPS"></param>
        /// <param name="v_Latitud"></param>
        /// <param name="v_Longitud"></param>
        /// <param name="v_HHID"></param>
        /// <param name="v_Hora"></param>
        /// <param name="v_tipoEvento"></param>
        /// <param name="v_TarjetaEmpleadoGPS"></param>
        /// <param name="v_orgID"></param>
        public void agregarAccesoDesdeGPS(int v_IDEmpleadoGPS,string v_Latitud,string v_Longitud,string v_HHID,string v_Hora,TiposAcceso v_tipoEvento,string v_TarjetaEmpleadoGPS,int v_orgID, int v_LNLPanelID, int v_LNLReaderID)
        {
            // Tengo la tarjeta correspondiente al empleadoGPS, obtengo ahora su lista de accesslevels, para esa organizacion, claro.
            string accessLevels = obtenerListaAccessLevels(v_TarjetaEmpleadoGPS, v_orgID);

            string[] listaAccessLevels = accessLevels.Split(',');

            bool conAccessLevel = false;

            // Loop Principal de verificacion del accessLevel del empleado.
            foreach (string idAccess in listaAccessLevels)
            {
                if (TieneAcceso(int.Parse(idAccess), v_Hora,v_LNLPanelID, v_LNLReaderID, v_orgID))
                {
                    conAccessLevel = true;
                    break;
                }
            }

            TiposAcceso tipoAccesoFinal = TiposAcceso.INVALIDO;

            if (!conAccessLevel)
            {
                if ( v_tipoEvento == TiposAcceso.Entrada)
                {
                    tipoAccesoFinal =  TiposAcceso.EINVALIDO;
                }

                if ( v_tipoEvento == TiposAcceso.Salida)
                {
                    tipoAccesoFinal =  TiposAcceso.SINVALIDO;
                }
            }
            else
            {
                tipoAccesoFinal = v_tipoEvento;
            }

            // Por fin dar de alta en la tabla de Accesos para que lo agarre el PollPanelForEvents y se vea en el Alarm Monitoring.
            Acceso nuevoAcceso = new Acceso(v_IDEmpleadoGPS, v_HHID, v_TarjetaEmpleadoGPS, v_Latitud, v_Longitud, v_Hora, null, tipoAccesoFinal);
            addAcceso(nuevoAcceso);
        }
Пример #6
0
        /// <summary>
        /// Devuelve el tipo de reader asociado a un tipo de acceso: Un acceso de entrada se realiza exclusivamente con un reader de tipo Entrance, etc-
        /// NOTA: Devuelve Granted por defecto
        /// </summary>
        /// <param name="v_tipoAcceso"></param>
        /// <returns></returns>
        GateAccessType obtenerTipoReader(TiposAcceso v_tipoAcceso)
        {
            GateAccessType res = GateAccessType.Granted;

            switch (v_tipoAcceso)
            {
                case TiposAcceso.Entrada:
                case TiposAcceso.EINVALIDO:
                    res = GateAccessType.Entrance;
                    break;
                case TiposAcceso.Salida:
                case TiposAcceso.SINVALIDO:
                    res = GateAccessType.Exit;
                    break;
                case TiposAcceso.INVALIDO:
                    res = GateAccessType.Forbidden;
                    break;
            }

            return res;
        }
Пример #7
0
        public Dictionary<string, Visita> LoadVisitas()
        {
            //Carga las visitas a partir de Base de Datos Sql Server

            Dictionary<string, Visita> listaVisitas = new Dictionary<string, Visita>();
            byte[] imageBytes = null;
            string id = "";
            string hhid = "";
            string tarjeta = "";
            string latitud = "";
            string longitud = "";
            string hora = "";
            string documento = "";
            string apellido = "";
            string nombre = "";
            string image = "";
            string empresa = "";
            string TipoAcceso = "";
            int orgID = -1;
            TiposAcceso tipoAcceso = new TiposAcceso();
            List<Visita> lista = new List<Visita>();

            SqlConnection cnn = new SqlConnection(conexion);
            try
            {
                cnn.Open();
                SqlCommand cmd = cnn.CreateCommand();
                cmd.CommandText = "select * from Visita";
                cmd.CommandType = CommandType.Text;

                SqlDataReader lector = cmd.ExecuteReader();

                while (lector.Read())
                {
                    id = lector["Id"].ToString();
                    hhid = lector["IdDevice"].ToString();
                    nombre = lector["Nombre"].ToString();
                    apellido = lector["Apellido"].ToString();
                    empresa = lector["Empresa"].ToString();
                    tarjeta = lector["Tarjeta"].ToString();
                    latitud = lector["Latitud"].ToString();
                    longitud = lector["Longitud"].ToString();
                    hora = lector["Fecha"].ToString();
                    TipoAcceso = lector["Tipoacceso"].ToString();
                    documento = lector["SSNO"].ToString();
                    orgID = int.Parse(lector["IdOrganizacion"].ToString());

                    if (lector["Imagen"].ToString() == "")
                    {
                        image = "";
                        imageBytes = null;
                    }
                    else
                    {
                        image = lector["Imagen"].ToString();
                    }

                    if (image != "")
                    {
                        try
                        {

                            string fileName = Path.GetFileName(image);

                            string imagePath = SystemConfiguration.ImagesPath;

                            imageBytes = File.ReadAllBytes(imagePath + @"/" + fileName);
                        }
                        catch (Exception )
                        {
                            image = "";
                            imageBytes = null;

                        }
                    }
                    tipoAcceso = (TiposAcceso)Enum.Parse(typeof(TiposAcceso), TipoAcceso);

                    Visita nuevaVisita = new Visita(hhid, nombre, apellido, documento, empresa, tarjeta, latitud, longitud, hora, imageBytes, tipoAcceso, orgID);

                    listaVisitas.Add(id, nuevaVisita);

                }
            }
            catch (Exception )
            {

            }
            finally
            {
                cnn.Close();
            }
            return listaVisitas;
        }
Пример #8
0
        public Dictionary<int, Acceso> LoadAccesos()
        {
            Dictionary<int, Acceso> listaAccesos = new Dictionary<int, Acceso>();
                byte[] imageBytes = null;
                int id;
                string hhid;
                string tarjeta;
                string latitud;
                string longitud;
                string hora;
                string TipoAccesoStr;
                string imagen;
                int idempleado;
                TiposAcceso tipoAcceso = new TiposAcceso();
                List<Acceso> lista = new List<Acceso>();
                SqlConnection cn = new SqlConnection(conexion);
                cn.Open();
                SqlCommand cmd = cn.CreateCommand();
                cmd.CommandText = "select * from Accesos";
                cmd.CommandType = CommandType.Text;

                SqlDataReader lector = cmd.ExecuteReader();

               while (lector.Read())
                {
                    imagen = lector["imagen"].ToString();
                    id = Convert.ToInt16(lector["idAcceso"]);
                    hhid = lector["IdHandHeld"].ToString();
                    tarjeta = lector["Tarjeta"].ToString();
                    latitud = lector["Latitud"].ToString();
                    longitud = lector["Longitud"].ToString();
                    try
                    {
                        hora = lector["Fecha"].ToString();
                    }
                    catch (Exception )
                    {
                        hora = "01-01-20000 01:01:00";
                    }

                    TipoAccesoStr = lector["Tipoacceso"].ToString();
                    tipoAcceso = (TiposAcceso)Enum.Parse(typeof(TiposAcceso), TipoAccesoStr);
                    idempleado = Convert.ToInt32(lector["idEmpleado"].ToString());

                    if (imagen != "")
                    {
                        try
                        {
                            string fileName = Path.GetFileName(imagen);
                            string imagePath = SystemConfiguration.ImagesPath;
                            imageBytes = File.ReadAllBytes(imagePath + @"/" + fileName);
                        }
                        catch (Exception )
                        {
                            imageBytes = null;
                        }
                    }
                    else
                    {
                        imageBytes = null;
                    }

                    Acceso nuevoAcceso = new Acceso(idempleado, hhid, tarjeta, latitud, longitud, hora, imageBytes, tipoAcceso);
                    listaAccesos.Add(id, nuevoAcceso);

                }
                cn.Close();
                return listaAccesos;
        }