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; }
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; }
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; }
// 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); }
/// <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); }
/// <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; }
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; }
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; }