public bool eliminarPersonalUsuario(int idPersonal, int idUsuario, int idRolAnterior)
        {
            bool respuesta                  = false;
            ConvertJsonToDataset cj         = new ConvertJsonToDataset();
            SqlConnection        connection = null;
            int existePersonal              = 0;

            try
            {
                using (connection = Conexion.ObtieneConexion("ConexionBD"))
                {
                    connection.Open();
                    //Parametros de entrada para la eliminacion de PersonalUsuario
                    var parametrosPersonalUsuarioElimina = new[]
                    {
                        ParametroAcceso.CrearParametro("@idPersonal", SqlDbType.Int, idPersonal, ParameterDirection.Input),
                        ParametroAcceso.CrearParametro("@idUsuario", SqlDbType.Int, idUsuario, ParameterDirection.Input),
                        ParametroAcceso.CrearParametro("@idRol", SqlDbType.Int, idRolAnterior, ParameterDirection.Input)
                    };
                    //Ejecuta el sp de eliminacion de PersonalUsuario
                    DataTable regresaPersona = Ejecuta.EjecutarConsulta(connection, parametrosPersonalUsuarioElimina, "[dbo].[Usp_CnfPersonalUsuariosTEliminar]");

                    //Itera el datatable donde el primer registro que regresa indica si existe otro usuario en la tabla
                    foreach (DataRow row in regresaPersona.Rows)
                    {
                        existePersonal = Convert.ToInt32(row["existePersonal"].ToString());
                    }

                    connection.Close();

                    connection.Open();
                    //Parametros de entrada para la eliminacion de usuario
                    var parametrosUsuario = new[]
                    {
                        ParametroAcceso.CrearParametro("@idUsuario", SqlDbType.Int, idUsuario, ParameterDirection.Input),
                    };
                    //Ejecuta el sp de eliminacion de usuario
                    Ejecuta.ProcedimientoAlmacenado(connection, "[dbo].[Usp_CnfUsuariosTEliminar]", parametrosUsuario);
                    connection.Close();

                    //Si no existen mas usuarios en la tabla de personal usuario, se elimina la persona de la tabla de personal
                    if (existePersonal == 0)
                    {
                        connection.Open();
                        //Parametros de entrada para la eliminacion de personal
                        var parametrosPersonal = new[]
                        {
                            ParametroAcceso.CrearParametro("@idPersonal", SqlDbType.Int, idPersonal, ParameterDirection.Input),
                        };
                        //Ejecuta el sp de eliminacion de personal
                        Ejecuta.ProcedimientoAlmacenado(connection, "[dbo].[Usp_CnfPersonalEliminar]", parametrosPersonal);
                        connection.Close();
                    }
                    respuesta = true;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(respuesta);
        }
        public bool insertaUsuario(string personaC, string idRol, string usuario, string pwd, int[] privilegios)
        {
            bool respuesta          = false;
            ConvertJsonToDataset cj = new ConvertJsonToDataset();
            int idPersonal          = Convert.ToInt32(personaC);
            int idUsuario           = 0;
            int idUsuarioEncontrado = 0;

            SqlConnection connection = null;

            try
            {
                using (connection = Conexion.ObtieneConexion("ConexionBD"))
                {
                    connection.Open();

                    //Parametros de entrada para buscar un usuario
                    var parametrosBuscaUsuario = new[]
                    {
                        ParametroAcceso.CrearParametro("@nombreUsuario", SqlDbType.VarChar, usuario, ParameterDirection.Input),
                    };
                    //Ejecuta el sp de busqueda de usuario y regresa un id en el datatable
                    DataTable regresaIdUsuarioBuscado = Ejecuta.EjecutarConsulta(connection, parametrosBuscaUsuario, "[dbo].[Usp_CnfUsuariosTConsultarUsuario]");

                    //Itera el datatable donde el primer registro que regresa es el id de usuario
                    foreach (DataRow row in regresaIdUsuarioBuscado.Rows)
                    {
                        idUsuarioEncontrado = Convert.ToInt32(row["idUsuario"].ToString());
                    }
                    connection.Close();

                    if (idUsuarioEncontrado == 0)
                    {
                        connection.Open();

                        //Parametros de entrada para la insercion en usuario
                        var parametrosUsuario = new[]
                        {
                            ParametroAcceso.CrearParametro("@nombreUsuario", SqlDbType.VarChar, usuario, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@contrasena", SqlDbType.VarChar, pwd, ParameterDirection.Input),
                        };
                        //Ejecuta el sp de insercion de usuario y regresa un id en el datatable
                        DataTable regresaIdUsuario = Ejecuta.EjecutarConsulta(connection, parametrosUsuario, "[dbo].[Usp_CnfUsuariosTInsertar]");

                        //Itera el datatable donde el primer registro que regresa es el id de usuario
                        foreach (DataRow row in regresaIdUsuario.Rows)
                        {
                            idUsuario = Convert.ToInt32(row["idUsuario"].ToString());
                        }

                        //Recorrer el arreglo de privilegios
                        foreach (int i in privilegios)
                        {
                            //Parametros de entrada para la insercion en PersonalUsuario
                            var parametrosPersonalUsuario = new[]
                            {
                                ParametroAcceso.CrearParametro("@idPersonal", SqlDbType.VarChar, idPersonal, ParameterDirection.Input),
                                ParametroAcceso.CrearParametro("@idUsuario", SqlDbType.VarChar, idUsuario, ParameterDirection.Input),
                                ParametroAcceso.CrearParametro("@idRol", SqlDbType.VarChar, idRol, ParameterDirection.Input),
                                ParametroAcceso.CrearParametro("@idPrivilegio", SqlDbType.VarChar, i, ParameterDirection.Input),
                            };
                            //Ejecuta el sp de insercion de usuario y regresa un id en el datatable
                            Ejecuta.EjecutarConsulta(connection, parametrosPersonalUsuario, "[dbo].[Usp_CnfPersonalUsuariosTInsertar]");
                        }

                        connection.Close();
                        respuesta = true;
                    }
                    else
                    {
                        respuesta = false;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(respuesta);
        }
        public bool modificarPersonalUsuario(string nombre, string apPaterno, string apMaterno, string rfc, string estadoC, string cpC, string idPuesto, string email, string idRol, string usuario, string pwd, string accesarSistema, int[] privilegios, int idPersonal, int idUsuario, int idRolAnterior)
        {
            bool respuesta                  = false;
            ConvertJsonToDataset cj         = new ConvertJsonToDataset();
            SqlConnection        connection = null;
            int idUsuarioEncontrado         = 0;

            try
            {
                using (connection = Conexion.ObtieneConexion("ConexionBD"))
                {
                    connection.Open();

                    //Parametros de entrada para buscar un usuario
                    var parametrosBuscaUsuario = new[]
                    {
                        ParametroAcceso.CrearParametro("@nombreUsuario", SqlDbType.VarChar, usuario, ParameterDirection.Input),
                    };
                    //Ejecuta el sp de busqueda de usuario y regresa un id en el datatable
                    DataTable regresaIdUsuario = Ejecuta.EjecutarConsulta(connection, parametrosBuscaUsuario, "[dbo].[Usp_CnfUsuariosTConsultarUsuario]");

                    //Itera el datatable donde el primer registro que regresa es el id de usuario
                    foreach (DataRow row in regresaIdUsuario.Rows)
                    {
                        idUsuarioEncontrado = Convert.ToInt32(row["idUsuario"].ToString());
                    }
                    connection.Close();

                    if (idUsuarioEncontrado == 0 || idUsuarioEncontrado == idUsuario)
                    {
                        connection.Open();

                        //Parametros de entrada para la modificacion de Personal
                        var parametros = new[]
                        {
                            ParametroAcceso.CrearParametro("@nombre", SqlDbType.VarChar, nombre, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@apPaterno", SqlDbType.VarChar, apPaterno, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@apMaterno", SqlDbType.VarChar, apMaterno, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@RFC", SqlDbType.VarChar, rfc, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@idPuesto", SqlDbType.Int, idPuesto, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@c_CP", SqlDbType.Int, cpC, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@idEstado", SqlDbType.Int, estadoC, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@email", SqlDbType.VarChar, email, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@acceso_a_sistemas", SqlDbType.VarChar, accesarSistema, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@idPersonal", SqlDbType.Int, idPersonal, ParameterDirection.Input),
                        };
                        //Ejecuta el sp de modificacion de personal
                        Ejecuta.ProcedimientoAlmacenado(connection, "[dbo].[Usp_CnfPersonalModificar]", parametros);
                        connection.Close();

                        connection.Open();
                        //Parametros de entrada para la modificacion de Usuario
                        var parametrosUsuario = new[]
                        {
                            ParametroAcceso.CrearParametro("@nombreUsuario", SqlDbType.VarChar, usuario, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@contrasena", SqlDbType.VarChar, pwd, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@idUsuario", SqlDbType.Int, idUsuario, ParameterDirection.Input),
                        };
                        //Ejecuta el sp de modificacion de Usuario
                        Ejecuta.ProcedimientoAlmacenado(connection, "[dbo].[Usp_CnfUsuariosTModificar]", parametrosUsuario);
                        connection.Close();

                        connection.Open();
                        //Parametros de entrada para la eliminacion de PersonalUsuario
                        var parametrosPersonalUsuarioElimina = new[]
                        {
                            ParametroAcceso.CrearParametro("@idPersonal", SqlDbType.Int, idPersonal, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@idUsuario", SqlDbType.Int, idUsuario, ParameterDirection.Input),
                            ParametroAcceso.CrearParametro("@idRol", SqlDbType.Int, idRolAnterior, ParameterDirection.Input)
                        };
                        //Ejecuta el sp de eliminacion de PersonalUsuario
                        Ejecuta.ProcedimientoAlmacenado(connection, "[dbo].[Usp_CnfPersonalUsuariosTEliminar]", parametrosPersonalUsuarioElimina);
                        connection.Close();

                        //Recorrer el arreglo de privilegios
                        foreach (int i in privilegios)
                        {
                            //Parametros de entrada para la insercion en PersonalUsuario
                            connection.Open();
                            var parametrosPersonalUsuario = new[]
                            {
                                ParametroAcceso.CrearParametro("@idPersonal", SqlDbType.VarChar, idPersonal, ParameterDirection.Input),
                                ParametroAcceso.CrearParametro("@idUsuario", SqlDbType.VarChar, idUsuario, ParameterDirection.Input),
                                ParametroAcceso.CrearParametro("@idRol", SqlDbType.VarChar, idRol, ParameterDirection.Input),
                                ParametroAcceso.CrearParametro("@idPrivilegio", SqlDbType.VarChar, i, ParameterDirection.Input),
                            };
                            //Ejecuta el sp de insercion de usuario y regresa un id en el datatable
                            Ejecuta.ProcedimientoAlmacenado(connection, "[dbo].[Usp_CnfPersonalUsuariosTInsertar]", parametrosPersonalUsuario);
                            connection.Close();
                        }
                        respuesta = true;
                    }
                    else
                    {
                        respuesta = false;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(respuesta);
        }
Esempio n. 4
0
        public Entidades.Usuario Validausuario(string nameUser, string password)
        {
            DataTable     dt         = new DataTable();
            SqlConnection connection = null;

            Entidades.Usuario usuario  = new Entidades.Usuario();
            DataSet           DSCampos = new DataSet();
            DataTable         DTCampos = new DataTable();


            using (connection = Conexion.ObtieneConexion("ConexionBD"))
            {
                SqlDataReader consulta;
                connection.Open();
                consulta = Ejecuta.ConsultaConRetorno(connection, "SELECT u.idUsuario , nombreUsuario, contrasena, u.idTipoTransaccion, VCT.idTransaccion,R.nombreRol, camposTransaccion"
                                                      + " FROM Configuracion.USUARIOS U, Configuracion.MAETransacciones MAE, Configuracion.ValoresCamposTransacciones VCT, Seguridad.UsuariosRoles UR, Seguridad.Roles R"
                                                      + " WHERE R.idRol = UR.idRol"
                                                      + " and u.idUsuario = UR.idUsuario"
                                                      + " and MAE.idTransaccion = VCT.idTransaccion"
                                                      + " and MAE.idTipoTransaccion = u.idTipoTransaccion"
                                                      + " and u.estatus = 1 and nombreUsuario = '" + nameUser + "'   "
                                                      + " and contrasena = '" + password + "'");
                dt.Load(consulta);
                connection.Close();
            }


            if (dt.Rows.Count != 0)
            {
                ConvertJsonToDataset CONVERT = new ConvertJsonToDataset();
                int    idUsuario             = 0;
                string nombreRol             = "";

                foreach (DataRow row in dt.Rows)
                {
                    idUsuario = Convert.ToInt32(row["idUsuario"]);
                    nombreRol = row["nombreRol"].ToString();

                    DSCampos = CONVERT.ConvertJsonStringToDataSet(row["camposTransaccion"].ToString());
                }


                DTCampos = DSCampos.Tables["Cabecera"];


                var query1 =
                    from product in DTCampos.AsEnumerable()
                    where product.Field <string>("idPersonal") == idUsuario.ToString()
                    select new
                {
                    idPersonal        = product.Field <string>("idPersonal"),
                    nombreRol1        = nombreRol,
                    nombre            = product.Field <string>("nombre"),
                    apPaterno         = product.Field <string>("apPaterno"),
                    apMaterno         = product.Field <string>("apMaterno"),
                    RFC               = product.Field <string>("RFC"),
                    idPerfil          = product.Field <string>("idPerfil"),
                    idPuesto          = product.Field <string>("idPuesto"),
                    idArea            = product.Field <string>("idArea"),
                    CP                = product.Field <string>("CP"),
                    idEstado          = product.Field <string>("idEstado"),
                    email             = product.Field <string>("email"),
                    fechaAlta         = product.Field <string>("fechaAlta"),
                    fechaModificacion = product.Field <string>("fechaModificacion"),
                    idEstatus         = product.Field <string>("idEstatus"),
                    activo            = product.Field <string>("activo")
                };



                foreach (var item in query1)
                {
                    usuario.idPersonal        = Convert.ToInt32(item.idPersonal);
                    usuario.nombre            = item.nombre;
                    usuario.apPaterno         = item.apPaterno;
                    usuario.apMaterno         = item.apMaterno;
                    usuario.RFC               = item.RFC;
                    usuario.idPerfil          = Convert.ToInt32(item.idPerfil);
                    usuario.idPuesto          = Convert.ToInt32(item.idPuesto);
                    usuario.idArea            = Convert.ToInt32(item.idArea);
                    usuario.CP                = item.CP;
                    usuario.idEstado          = Convert.ToInt32(item.idEstado);
                    usuario.email             = item.email;
                    usuario.fechaAlta         = item.fechaAlta;
                    usuario.fechaModificacion = item.fechaModificacion;
                    usuario.nombreRol         = item.nombreRol1;
                }
            }
            else
            {
                usuario = null;
            }



            return(usuario);
        }