using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.Common; using AyABL.AUT.Autenticacion; using AyAEL.SEG; using AyADAL; namespace AyABL.SEG { public class UsuarioBL : AyABL { #region Constructores public UsuarioBL() { objUsuarioEL = new UsuarioEL(); this.NombreTabla = Modulos.t_seg_.ToString() + Tablas.usuario.ToString(); this.NombreConeccionBD = BASESDEDATOS.FOPI.ToString(); } #endregion #region Atributos public UsuarioEL objUsuarioEL { get; set; } #endregion #region Metodos /// /// Metodo para loguearse contra active directory /// /// /// /// /// Usado en: /// wfrLogin.aspx public bool validarActiveDirectory(string p_strLogin, string p_strContrasena) { bool blnEjecutado = false; AutenticacionBL objAutenticacionBL = new AutenticacionBL(); string servidorActiveDirectory = "aya-srv-0111/DC=intranet, DC=aya, DC=go, DC=cr"; if (objAutenticacionBL.Autenticar(p_strLogin, p_strContrasena, servidorActiveDirectory)) { blnEjecutado = true; } else { string servidorActiveDirectory2 = "aya-vsrv-0112/DC=intranet,DC=aya,DC=go,DC=cr"; if (objAutenticacionBL.Autenticar(p_strLogin, p_strContrasena, servidorActiveDirectory2)) { blnEjecutado = true; } else { blnEjecutado = false; } } return blnEjecutado; } /// /// Se utiliza para loguearse al sistema /// /// /// /// Usado en: /// wfrLogin.aspx public DataSet dsLogueo() { DataSet dsLogueo = new DataSet(); ArrayList arlCondiciones = new ArrayList(); arlCondiciones.Add(buscarPorLogin(objUsuarioEL.Login, Tablas.usuario, operadorLogico.AND)); arlCondiciones.Add(buscarPorActivo(true, Tablas.usuario, operadorLogico.NONE)); NombreTabla = Vistas.v_informacionusuario.ToString(); dsLogueo = baseDAL.EjecutarConsulta(NombreTabla, CamposTabla, NombreConeccionBD, arlCondiciones, null, null); return dsLogueo; } /// /// Se utiliza para listar los registros de la tabla /// /// /// /// Usado en: /// wfrLogin.aspx public DataSet getListaUsuarios(ArrayList p_arlCondicionesBuscador) { DataSet dsLogueo = new DataSet(); ArrayList arlCondiciones = new ArrayList(); cargarCondicionBusqueda(arlCondiciones, p_arlCondicionesBuscador); if (objUsuarioEL.PK != 0) arlCondiciones.Add(buscarPorPK(objUsuarioEL.PK, Tablas.usuario, operadorLogico.AND)); if (objUsuarioEL.Activo != null) arlCondiciones.Add(buscarPorActivo(objUsuarioEL.Activo, Tablas.usuario, operadorLogico.NONE)); NombreTabla = Vistas.v_informacionusuario.ToString(); dsLogueo = baseDAL.EjecutarConsulta(NombreTabla, CamposTabla, NombreConeccionBD, arlCondiciones, null, null); return dsLogueo; } public bool getUsuario() { bool blnEjecutado = false; ArrayList arlCondiciones = new ArrayList(); int intUsuario = 0; arlCondiciones.Add(buscarPorLogin(objUsuarioEL.Login, Tablas.usuario, operadorLogico.NONE)); intUsuario = baseDAL.EjecutarConsulta(NombreTabla, CamposTabla, NombreConeccionBD, arlCondiciones, null, null).Tables[0].Rows.Count; if (intUsuario == 0) blnEjecutado = true; return blnEjecutado; } /// /// Incluye los datos del usuario en base de datos /// /// /// Usado en: /// SEG/usuario/frwUsuario.aspx public bool insertarUsuario() { bool blnEjecutado = false; this.CamposTabla = t_seg_usuario.LOGIN.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + Concepto.NOMBRE.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + t_seg_usuario.CEDULA.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + t_seg_usuario.CORREO.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + Constraints.FK.ToString() + Tablas.rol.ToString().ToUpper() + ", " + Constraints.FK.ToString() + Tablas.dependencia.ToString().ToUpper(); this.ValoresCampos = new object[]{objUsuarioEL.Login, objUsuarioEL.Nombre, objUsuarioEL.Cedula, objUsuarioEL.Correo, objUsuarioEL.Rol, objUsuarioEL.Dependencia }; baseDAL.Insertar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, null); blnEjecutado = true; return blnEjecutado; } /// /// Actualiza los datos del usuario en base de datos /// /// public bool actualizarUsuario() { bool blnEjecutado = false; ArrayList arlCondiciones = new ArrayList(); if (objUsuarioEL.PK != 0) { arlCondiciones.Add(buscarPorPK(objUsuarioEL.PK, Tablas.usuario, operadorLogico.NONE)); } this.CamposTabla = t_seg_usuario.LOGIN.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + Concepto.NOMBRE.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + t_seg_usuario.CEDULA.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + t_seg_usuario.CORREO.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + Concepto.ACTIVO.ToString() + Tablas.usuario.ToString().ToUpper() + ", " + Constraints.FK.ToString() + Tablas.rol.ToString().ToUpper() + ", " + Constraints.FK.ToString() + Tablas.dependencia.ToString().ToUpper(); this.ValoresCampos = new object[]{objUsuarioEL.Login, objUsuarioEL.Nombre, objUsuarioEL.Cedula, objUsuarioEL.Correo, objUsuarioEL.Activo, objUsuarioEL.Rol, objUsuarioEL.Dependencia }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } /// /// Actualiza el estado del usuario en base de datos /// /// public bool actualizarEstadoUsuario() { bool blnEjecutado = false; ArrayList arlCondiciones = new ArrayList(); if (objUsuarioEL.PK != 0) { arlCondiciones.Add(buscarPorPK(objUsuarioEL.PK, Tablas.usuario, operadorLogico.NONE)); } this.CamposTabla = Concepto.ACTIVO.ToString() + Tablas.usuario.ToString().ToUpper(); this.ValoresCampos = new object[]{ objUsuarioEL.Activo }; baseDAL.Actualizar(this.NombreTabla, this.CamposTabla, this.ValoresCampos, this.NombreConeccionBD, arlCondiciones); blnEjecutado = true; return blnEjecutado; } #endregion #region Condiciones protected CondicionDAL buscarPorLogin(string p_strLogin, Tablas p_nombreTabla, operadorLogico logOp) { CondicionDAL cdlCondicion = new CondicionDAL(); cdlCondicion.valorIzquierdo = t_seg_usuario.LOGIN.ToString() + p_nombreTabla.ToString(); cdlCondicion.operadorLogico = logOp; cdlCondicion.operadorGeneral = operadorGeneral.EQUAL; cdlCondicion.valorDerecho = p_strLogin; return cdlCondicion; } #endregion } }