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
}
}