/// <summary> /// Modifica los datos de una Persona /// </summary> /// <param name="pPersona">Persona con los datos actualizados. Busca por ID</param> public static void Modificar(PersonaAutorizada pPersona) { if ((pPersona == null) || (pPersona.IdPersona < 1)) { throw new ArgumentNullException(nameof(pPersona)); } DAOFactory factory = DAOFactory.Instancia(); try { factory.IniciarConexion(); factory.PersonaAutorizadaDAO.ModificarNombre(pPersona.IdPersona, pPersona.Nombre); factory.PersonaAutorizadaDAO.ModificarContrasena(pPersona.IdPersona, pPersona.Contraseña); factory.PersonaAutorizadaDAO.ModificarGrupo(pPersona.IdPersona, pPersona.IdGrupo); factory.PersonaAutorizadaDAO.ModificarFechaAlta(pPersona.IdPersona, pPersona.FechaAlta); factory.PersonaAutorizadaDAO.ModificarFechaBaja(pPersona.IdPersona, pPersona.FechaBaja); factory.FinalizarConexion(); } catch (DAOException e) { factory.RollBack(); factory.FinalizarConexion(); throw new LogicaException(e.Message); } }
/// <summary> /// Agrega una Persona Autorizada a la base de datos /// </summary> /// <param name="pPersona">Persona a agregar</param> /// <returns></returns> public static int Agregar(PersonaAutorizada pPersona) { if ((pPersona == null) || (pPersona.Nombre.Length == 0)) { throw new ArgumentNullException(nameof(pPersona)); } DAOFactory factory = DAOFactory.Instancia(); try { factory.IniciarConexion(); int idPersona = factory.PersonaAutorizadaDAO.VerificarNombre(pPersona.Nombre); factory.FinalizarConexion(); if (idPersona == -1) { factory.IniciarConexion(); factory.PersonaAutorizadaDAO.Agregar(pPersona); factory.FinalizarConexion(); } return(idPersona); } catch (DAOException e) { factory.RollBack(); factory.FinalizarConexion(); throw new LogicaException(e.Message); } }
/// <summary> /// Allows add a new "Persona" to the database /// </summary> /// <param name="pPersona">Persona to be added</param> public void Agregar(PersonaAutorizada pPersona) { if (pPersona == null) throw new ArgumentNullException(nameof(pPersona)); try { string query = "INSERT INTO \"Persona\"(nombre,contrasena, \"fechaAlta\", \"idGrupo\") VALUES(@nombre,@contrasena,@fechaalta,@idgrupo)"; using NpgsqlCommand comando = this._conexion.CreateCommand(); comando.CommandText = query; comando.Parameters.AddWithValue("@nombre", pPersona.Nombre); comando.Parameters.AddWithValue("@contrasena", pPersona.Contraseña); comando.Parameters.AddWithValue("@fechaalta", pPersona.FechaAlta); comando.Parameters.AddWithValue("@idgrupo", pPersona.IdGrupo); comando.ExecuteNonQuery(); } catch (PostgresException e) { throw new DAOException("Error al agregar Persona: " + e.Message); } catch (NpgsqlException e) { throw new DAOException("Error al agregar Persona: " + e.Message); } }
/// <summary> /// Permite agregar una persona /// </summary> /// <param name="pNombre">nombre de la persona</param> /// <param name="pContraseña">contraseña para permitir el retiro de insumos</param> /// <param name="pNombreGrupo">grupo al que pertenece</param> /// <returns>-1 en caso de éxito</returns> public static int AgregarPersona(string pNombre, string pContraseña, string pNombreGrupo) { int idPersona = ControladorPersona.VerificarNombre(pNombre); if (idPersona == -1) { string hash = Utilidades.Encriptar(string.Concat(pNombre, pContraseña)); Grupo gr = ControladorGrupo.Obtener(pNombreGrupo); int idGrupo; if (gr != null) { idGrupo = gr.IdGrupo; } else { return(-2); } PersonaAutorizada persona = new PersonaAutorizada(pNombre, hash, DateTime.Today, DateTime.Today, idGrupo); if (ControladorPersona.Agregar(persona) == -2) { idPersona = -2; } } return(idPersona); }
/// <summary> /// Permite modificar la contrasña de una persona /// </summary> /// <param name="pNombre">nombre de la persona</param> /// <param name="pContraseña">contraseña</param> public static bool ModificarPersona(string pNombre, string pContraseña) { PersonaAutorizada personaAutorizada = ControladorPersona.Obtener(pNombre); string hash = Utilidades.Encriptar(string.Concat(pNombre, pContraseña)); personaAutorizada.Contraseña = hash; ControladorPersona.Modificar(personaAutorizada); return(true); }
/// <summary> /// Permite dar de baja una persona /// </summary> /// <param name="pNombre">nombre de la persona a dar de baja</param> /// <returns>true en caso de éxito, false caso contrario</returns> public static bool EliminarPersona(string pNombre) { PersonaAutorizada persona = ControladorPersona.Obtener(pNombre); if (persona.FechaBaja == DateTime.MinValue) { persona.FechaBaja = DateTime.Now; ControladorPersona.Modificar(persona); return(true); } else { return(false); } }
/// <summary> /// Obtiene una Persona Autorizada /// </summary> /// <param name="pNombre">Nombre de la Persona para realizar la búsqueda</param> /// <returns>Persona Autorizada. Null en caso de error</returns> public static PersonaAutorizada Obtener(string pNombre) { DAOFactory factory = DAOFactory.Instancia(); try { factory.IniciarConexion(); PersonaAutorizada persona = factory.PersonaAutorizadaDAO.Obtener(pNombre); factory.FinalizarConexion(); return(persona); } catch (DAOException e) { factory.RollBack(); factory.FinalizarConexion(); throw new LogicaException(e.Message); } }
/// <summary> /// Obtain an "Persona" by his field "nombre" /// </summary> /// <param name="pNombre">to search by</param> public PersonaAutorizada Obtener(string pNombre) { string query = "SELECT * FROM \"Persona\" WHERE nombre = '" + pNombre + "'"; PersonaAutorizada _PersonaRetira = null; try { using NpgsqlCommand comando = this._conexion.CreateCommand(); comando.CommandText = query; using (NpgsqlDataAdapter adaptador = new NpgsqlDataAdapter(comando)) { DataTable tabla = new DataTable(); adaptador.Fill(tabla); foreach (DataRow fila in tabla.Rows) { int id = Convert.ToInt32(fila["idPersona"]); int idGrupo = Convert.ToInt32(fila["idGrupo"]); string nombre = Convert.ToString(fila["nombre"]); string pass = Convert.ToString(fila["contrasena"]); DateTime fechaAlta = Convert.ToDateTime(fila["fechaAlta"]); DateTime fechaBaja = DateTime.MinValue; if (fila["fechaBaja"] != DBNull.Value) fechaBaja = Convert.ToDateTime(fila["fechaBaja"]); int idCreador = Convert.ToInt32(fila["idCreadoPor"]); _PersonaRetira = new PersonaAutorizada(id, nombre, pass, fechaAlta, fechaBaja, idGrupo, idCreador); } tabla.Dispose(); } return _PersonaRetira; } catch (PostgresException e) { throw new DAOException("Error al intentar obtener los datos de la persona \"" + pNombre + "\": " + e.Message); } catch (NpgsqlException e) { throw new DAOException("Error al intentar obtener los datos de la persona \"" + pNombre + "\": " + e.Message); } }