/// <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);
            }
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
        /// <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);
        }
Beispiel #6
0
        /// <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);
            }
        }