예제 #1
0
        public ActionResult ModificarPasswordUsuario(Usuarios infoUsuario)
        {
            string           mensajesUsuarios = string.Empty;
            MensajesUsuarios msjUsuarios      = new MensajesUsuarios();

            try
            {
                UsuariosAccDatos objUsuariosAccDatos = new UsuariosAccDatos((string)Session["NickUsuario"]);
                msjUsuarios = objUsuariosAccDatos.ActualizarUsuario(infoUsuario, 4);
                if (msjUsuarios.OperacionExitosa)
                {
                    mensajesUsuarios = string.Format("El usuario con ID: {0} ha sido modificado correctamente.", infoUsuario.IdUsuario);
                    Logs.Info(mensajesUsuarios);
                }
                else
                {
                    mensajesUsuarios = string.Format("No se ha podido actualizar el usuario con ID: {0}: {1}", infoUsuario.IdUsuario, msjUsuarios.MensajeError);
                    Logs.Error(mensajesUsuarios);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("{0}: {1}", mensajesUsuarios, e.Message));
            }
            return(Json(msjUsuarios, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// Método para actualizar el estado de un Usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios ActualizacionEstadoUsuario(Usuarios infoUsuario)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE dcicc_usuarios set habilitado_usuario = @hu where id_usuario = @iu", conn_BD))
                {
                    cmd.Parameters.Add("hu", NpgsqlTypes.NpgsqlDbType.Boolean).Value = infoUsuario.HabilitadoUsuario;
                    cmd.Parameters.Add("iu", NpgsqlTypes.NpgsqlDbType.Integer).Value = infoUsuario.IdUsuario;
                    cmd.ExecuteNonQuery();
                }
                tran.Commit();
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = false;
                msjUsuarios.MensajeError     = e.Message;
            }
            return(msjUsuarios);
        }
        /// <summary>
        /// Método para eliminar un usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios EliminacionUsuario(Usuarios infoUsuario)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("DELETE FROM public.dcicc_usuarios WHERE id_usuario=@iu;", conn_BD))
                {
                    cmd.Parameters.Add("iu", NpgsqlTypes.NpgsqlDbType.Integer).Value = infoUsuario.IdUsuario;
                    cmd.ExecuteNonQuery();
                }
                string query = "DROP USER @nu";
                using (NpgsqlCommand cmd = new NpgsqlCommand(query, conn_BD))
                {
                    cmd.Parameters.Add("nu", NpgsqlTypes.NpgsqlDbType.Integer).Value = infoUsuario.NickUsuario;
                    cmd.ExecuteNonQuery();
                }
                tran.Commit();
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = false;
                msjUsuarios.MensajeError     = e.Message;
            }
            return(msjUsuarios);
        }
        /// <summary>
        /// Método para actualizar el password de un Usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios ActualizacionPasswordUsuario(Usuarios infoUsuario)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                string            pwdUsuario = ConfigEncryption.EncriptarValor(infoUsuario.PasswordUsuario);
                NpgsqlTransaction tran       = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE dcicc_usuarios set password_usuario = @pu where id_usuario = @iu", conn_BD))
                {
                    cmd.Parameters.Add("pu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = pwdUsuario.Trim();
                    cmd.Parameters.Add("iu", NpgsqlTypes.NpgsqlDbType.Integer).Value = infoUsuario.IdUsuario;
                    cmd.ExecuteNonQuery();
                }
                string query = string.Format("ALTER USER {0} with password '{1}';", infoUsuario.NickUsuario.Trim(), pwdUsuario.Trim());
                using (var cmd = new NpgsqlCommand(query, conn_BD))
                {
                    cmd.ExecuteNonQuery();
                }
                tran.Commit();
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = false;
                msjUsuarios.MensajeError     = e.Message;
            }
            return(msjUsuarios);
        }
예제 #5
0
        public ActionResult EliminarUsuario(Usuarios infoUsuario)
        {
            string           mensajesUsuarios = string.Empty;
            MensajesUsuarios msjUsuarios      = new MensajesUsuarios();

            try
            {
                UsuariosAccDatos objUsuariosAccDatos = new UsuariosAccDatos((string)Session["NickUsuario"]);
                msjUsuarios = objUsuariosAccDatos.EliminarUsuario(infoUsuario);
                if (msjUsuarios.OperacionExitosa)
                {
                    mensajesUsuarios = string.Format("El usuario con ID: {0} ha sido eliminado correctamente.", infoUsuario.IdUsuario);
                    Logs.Info(mensajesUsuarios);
                }
                else
                {
                    mensajesUsuarios = string.Format("No se ha podido eliminar el usuario con ID: {0}: {1}", infoUsuario.IdUsuario, msjUsuarios.MensajeError);
                    Logs.Error(mensajesUsuarios);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("{0}: {1}", mensajesUsuarios, e.Message));
            }
            return(RedirectToAction("ModificarUsuario", "Usuarios"));
        }
예제 #6
0
        public ActionResult NuevoUsuarioPOST(Usuarios infoUsuario)
        {
            string           mensajesUsuarios = string.Empty;
            MensajesUsuarios msjUsuarios      = new MensajesUsuarios();

            try
            {
                UsuariosAccDatos objUsuariosAccDatos = new UsuariosAccDatos((string)Session["NickUsuario"]);
                msjUsuarios = objUsuariosAccDatos.RegistrarUsuario(infoUsuario);
                if (msjUsuarios.OperacionExitosa)
                {
                    mensajesUsuarios    = string.Format("El usuario \"{0}\" ha sido registrado exitosamente.", infoUsuario.NickUsuario);
                    TempData["Mensaje"] = mensajesUsuarios;
                    Logs.Info(mensajesUsuarios);
                }
                else
                {
                    mensajesUsuarios         = string.Format("No se ha podido registrar el usuario \"{0}\": {1}", infoUsuario.NickUsuario, msjUsuarios.MensajeError);
                    TempData["MensajeError"] = mensajesUsuarios;
                    Logs.Error(mensajesUsuarios);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("{0}: {1}", mensajesUsuarios, e.Message));
                return(View());
            }
            return(RedirectToAction("ModificarUsuario", "Usuarios"));
        }
        /// <summary>
        /// Método para obtener un Usuario en específico de la base de datos por su Nick
        /// </summary>
        /// <param name="IdUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios ObtenerUsuarioPorNick(string nickUsuario)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                MensajesUsuarios msjUsuariosConsulta = ObtenerUsuarios("consultausuarios");
                Usuarios         infoUsuarioBD       = msjUsuariosConsulta.ListaObjetoInventarios.Find(x => x.NickUsuario == nickUsuario);
                if (infoUsuarioBD != null)
                {
                    msjUsuarios.ObjetoInventarios = infoUsuarioBD;
                    msjUsuarios.OperacionExitosa  = true;
                }
                else
                {
                    msjUsuarios.ObjetoInventarios = null;
                    msjUsuarios.OperacionExitosa  = true;
                }
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa       = false;
                msjUsuarios.MensajeError           = e.Message;
                msjUsuarios.ListaObjetoInventarios = null;
            }
            return(msjUsuarios);
        }
        /// <summary>
        /// Método para obtener los Usuarios Administradores de la base de datos.
        /// </summary>
        /// <returns></returns>
        public MensajesUsuarios ObtenerUsuariosAdministradores()
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();
            List <Usuarios>  lstUsuarios = new List <Usuarios>();

            try
            {
                using (NpgsqlCommand cmd = new NpgsqlCommand("select nombres_usuario,correo_usuario from dcicc_usuarios as u,dcicc_roles as r where r.nombre_rol='administrador' and r.id_rol=u.id_rol", conn_BD))
                {
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            Usuarios objUsuarios = new Usuarios
                            {
                                NombresUsuario = dr[0].ToString( ).Trim(),
                                CorreoUsuario  = dr[1].ToString().Trim(),
                            };
                            lstUsuarios.Add(objUsuarios);
                        }
                        conn_BD.Close();
                        msjUsuarios.ListaObjetoInventarios = lstUsuarios;
                        msjUsuarios.OperacionExitosa       = true;
                    }
                }
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa       = false;
                msjUsuarios.MensajeError           = e.Message;
                msjUsuarios.ListaObjetoInventarios = null;
            }
            return(msjUsuarios);
        }
        public MensajesUsuarios RecuperarPassword([FromBody] string infoCorreo)
        {
            MensajesUsuarios msjUsuarios  = new MensajesUsuarios();
            Usuarios         datosUsuario = new Usuarios();

            try
            {
                if (infoCorreo != null)
                {
                    ConsultasUsuarios objConsultasUsuariosBD = new ConsultasUsuarios();
                    datosUsuario = objConsultasUsuariosBD.ObtenerUsuarios("usuarioshabilitados").ListaObjetoInventarios.Find(x => x.CorreoUsuario == infoCorreo);
                    if (datosUsuario != null)
                    {
                        datosUsuario.PasswordUsuario  = ConfigEncryption.EncriptarValor(datosUsuario.PasswordUsuario);
                        msjUsuarios.ObjetoInventarios = datosUsuario;
                        msjUsuarios.OperacionExitosa  = true;
                        Logs.Info(string.Format("Solicitud de datos exitosa para recuperación de contraseña para el correo: {0}.", infoCorreo));
                    }
                    else
                    {
                        msjUsuarios.ObjetoInventarios = null;
                        msjUsuarios.OperacionExitosa  = false;
                        Logs.Error(string.Format("Solicitud de datos fallida para recuperación de contraseña para el correo: {0}.", infoCorreo));
                    }
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Solicitud de datos fallida para recuperación de contraseña para el correo: {0}: {1}", infoCorreo, e.Message));
                msjUsuarios.ObjetoInventarios = null;
                msjUsuarios.OperacionExitosa  = false;
            }
            return(msjUsuarios);
        }
        public MensajesUsuarios AutenticarUsuario([FromBody] Usuarios infoUsuario)
        {
            MensajesUsuarios msjUsuarios  = new MensajesUsuarios();
            Usuarios         datosUsuario = new Usuarios();

            try
            {
                if (infoUsuario.NickUsuario != null && infoUsuario.NickUsuario != null)
                {
                    ConsultasUsuarios objConUsuarios = new ConsultasUsuarios();
                    datosUsuario = objConUsuarios.ObtenerUsuarios("usuarioshabilitados").ListaObjetoInventarios.Find(x => x.NickUsuario == infoUsuario.NickUsuario && x.PasswordUsuario == infoUsuario.PasswordUsuario);
                    if (datosUsuario != null)
                    {
                        msjUsuarios.ObjetoInventarios = datosUsuario;
                        msjUsuarios.OperacionExitosa  = true;
                        Logs.Info(string.Format("Autenticación exitosa con el Web Service del usuario: {0}.", infoUsuario.NickUsuario));
                    }
                    else
                    {
                        msjUsuarios.ObjetoInventarios = null;
                        msjUsuarios.OperacionExitosa  = false;
                        Logs.Error(string.Format("Autenticación fallida con el Web Service del usuario: {0}.", infoUsuario.NickUsuario));
                    }
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Autenticación fallida con el Web Service del usuario: {0}: {1}", infoUsuario.NickUsuario, e.Message));
                msjUsuarios.ObjetoInventarios = null;
                msjUsuarios.OperacionExitosa  = false;
            }
            return(msjUsuarios);
        }
예제 #11
0
        /// <summary>
        /// Método para obtener todos los Usuarios de la base de datos
        /// </summary>
        /// <returns></returns>
        public MensajesUsuarios ObtenerUsuariosComp(string nickSesion)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();
            UsuariosAccDatos objUsuariosRolesAccDatos = new UsuariosAccDatos(nickSesion);

            msjUsuarios = objUsuariosRolesAccDatos.ObtenerUsuarios("Roles");
            return(msjUsuarios);
        }
예제 #12
0
        /// <summary>
        /// Método para ingresar un nuevo Usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios RegistroUsuario(Usuarios infoUsuario)
        {
            string           pwdUsuario  = ConfigEncryption.EncriptarValor(infoUsuario.PasswordUsuario);
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("insert into dcicc_usuarios (id_rol,nombres_usuario,nick_usuario,password_usuario,correo_usuario,telefono_usuario,telefonocelular_usuario,direccion_usuario,habilitado_usuario) VALUES (@ir,@nu,@niu,@pu,@cu,@tu,@tcu,@du,@hu)", conn_BD))
                {
                    cmd.Parameters.Add("ir", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoUsuario.IdRol;
                    cmd.Parameters.Add("nu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoUsuario.NombresUsuario.Trim();
                    cmd.Parameters.Add("niu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = infoUsuario.NickUsuario.Trim();
                    cmd.Parameters.Add("pu", NpgsqlTypes.NpgsqlDbType.Text).Value     = pwdUsuario.Trim();
                    cmd.Parameters.Add("cu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoUsuario.CorreoUsuario.Trim();
                    cmd.Parameters.Add("tu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoUsuario.TelefonoUsuario) ? (object)infoUsuario.TelefonoUsuario.Trim() : DBNull.Value;
                    cmd.Parameters.Add("tcu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoUsuario.TelefonoCelUsuario) ? (object)infoUsuario.TelefonoCelUsuario.Trim() : DBNull.Value;
                    cmd.Parameters.Add("du", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoUsuario.DireccionUsuario) ? (object)infoUsuario.DireccionUsuario.Trim().Trim() : DBNull.Value;
                    cmd.Parameters.Add("hu", NpgsqlTypes.NpgsqlDbType.Boolean).Value  = infoUsuario.HabilitadoUsuario;
                    cmd.ExecuteNonQuery();
                }
                string         query            = string.Empty;
                ConsultasRoles objConsultaRoles = new ConsultasRoles();
                infoUsuario.NombreRol = objConsultaRoles.ObtenerRolPorId(infoUsuario.IdRol).ObjetoInventarios.NombreRol;
                if (infoUsuario.NombreRol == "administrador")
                {
                    query = string.Format("create user {0} with password '{1}' LOGIN CREATEROLE CREATEUSER in group {2};", infoUsuario.NickUsuario.Trim(), pwdUsuario.Trim(), infoUsuario.NombreRol.Trim());
                }
                else
                {
                    query = string.Format("create user {0} with password '{1}' NOCREATEROLE NOCREATEUSER in group {2};", infoUsuario.NickUsuario.Trim(), pwdUsuario.Trim(), infoUsuario.NombreRol.Trim());
                }
                using (NpgsqlCommand cmd = new NpgsqlCommand(query, conn_BD))
                {
                    cmd.ExecuteNonQuery();
                }
                tran.Commit();
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = false;
                msjUsuarios.MensajeError     = e.Message;
            }
            return(msjUsuarios);
        }
예제 #13
0
        public MensajesUsuarios EliminarUsuario([FromBody] Usuarios infoUsuario)
        {
            MensajesUsuarios      msjUsuarios = new MensajesUsuarios();
            EliminacionesUsuarios objEliminacionesUsuariosBD = new EliminacionesUsuarios();

            msjUsuarios = objEliminacionesUsuariosBD.EliminacionUsuario(infoUsuario);
            if (msjUsuarios.OperacionExitosa)
            {
                Logs.Info(string.Format("Eliminación de Usuario con ID: {0} realizada exitosamente.", infoUsuario.IdUsuario));
            }
            else
            {
                Logs.Error(msjUsuarios.MensajeError);
            }
            return(msjUsuarios);
        }
예제 #14
0
        public MensajesUsuarios ActualizarPasswordUsuario([FromBody] Usuarios infoUsuario)
        {
            MensajesUsuarios        msjUsuarios = new MensajesUsuarios();
            ActualizacionesUsuarios objActualizacionesUsuariosBD = new ActualizacionesUsuarios();

            msjUsuarios = objActualizacionesUsuariosBD.ActualizacionPasswordUsuario(infoUsuario);
            if (msjUsuarios.OperacionExitosa)
            {
                Logs.Info(string.Format("Actualización de password de Usuario con ID: {0} realizada exitosamente.", infoUsuario.IdUsuario));
            }
            else
            {
                Logs.Error(msjUsuarios.MensajeError);
            }
            return(msjUsuarios);
        }
예제 #15
0
        public MensajesUsuarios RegistrarUsuario([FromBody] Usuarios infoUsuario)
        {
            MensajesUsuarios    msjUsuarios = new MensajesUsuarios();
            InsercionesUsuarios objInsercionesUsuariosBD = new InsercionesUsuarios();

            msjUsuarios = objInsercionesUsuariosBD.RegistroUsuario(infoUsuario);
            if (msjUsuarios.OperacionExitosa)
            {
                Logs.Info(string.Format("Registro de Usuario \"{0}\" realizado exitosamente.", infoUsuario.NickUsuario));
            }
            else
            {
                Logs.Error(msjUsuarios.MensajeError);
            }
            return(msjUsuarios);
        }
예제 #16
0
        public MensajesUsuarios ObtenerUsuariosRespTickets()
        {
            MensajesUsuarios  msjUsuarios            = new MensajesUsuarios();
            ConsultasUsuarios objConsultasUsuariosBD = new ConsultasUsuarios();

            msjUsuarios = objConsultasUsuariosBD.ObtenerUsuarios("responsablestickets");
            if (msjUsuarios.OperacionExitosa)
            {
                Logs.Info("Consulta de Usuarios realizada exitosamente.");
            }
            else
            {
                Logs.Error(msjUsuarios.MensajeError);
            }
            return(msjUsuarios);
        }
예제 #17
0
        public MensajesUsuarios ObtenerUsuariosHab()
        {
            MensajesUsuarios  msjUsuarios            = new MensajesUsuarios();
            ConsultasUsuarios objConsultasUsuariosBD = new ConsultasUsuarios();

            msjUsuarios = objConsultasUsuariosBD.ObtenerUsuarios("usuarioshabilitados");
            if (msjUsuarios.OperacionExitosa)
            {
                Logs.Info("Consulta de Usuarios realizada exitosamente.");
            }
            else
            {
                Logs.Error(msjUsuarios.MensajeError);
            }
            return(msjUsuarios);
        }
예제 #18
0
        /// <summary>
        /// Método para obtener los datos del usuario que desee recuperar su contraseña.
        /// </summary>
        /// <param name="infoCorreo"></param>
        /// <returns></returns>
        public MensajesUsuarios RecuperarPassword(string infoCorreo)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                var response = client_Service.PostAsJsonAsync("AccesoServicio/RecuperarPassword", infoCorreo).Result;
                if (response.IsSuccessStatusCode)
                {
                    var usersJson = response.Content.ReadAsStringAsync().Result;
                    msjUsuarios = JsonConvert.DeserializeObject <MensajesUsuarios>(usersJson);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Error en la conexión para autenticar el usuario: {0}", e.Message));
            }
            return(msjUsuarios);
        }
예제 #19
0
        /// <summary>
        /// Método para eliminar un Usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios EliminarUsuario(Usuarios infoUsuario)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                var response = client_Service.PostAsJsonAsync("Usuarios/EliminarUsuario", infoUsuario).Result;
                if (response.IsSuccessStatusCode)
                {
                    var usersJson = response.Content.ReadAsStringAsync().Result;
                    msjUsuarios = JsonConvert.DeserializeObject <MensajesUsuarios>(usersJson);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Error en la conexión para eliminar un usuario: {0}", e.Message));
            }
            return(msjUsuarios);
        }
예제 #20
0
        /// <summary>
        /// Método para obtener una lista todos los Usuarios de la base de datos.
        /// </summary>
        /// <returns></returns>
        public MensajesUsuarios ObtenerUsuarios(string nombreFuncion)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                HttpResponseMessage response = client_Service.GetAsync(string.Format("Usuarios/ObtenerUsuarios{0}", nombreFuncion)).Result;
                if (response.IsSuccessStatusCode)
                {
                    var usersJson = response.Content.ReadAsStringAsync().Result;
                    msjUsuarios = JsonConvert.DeserializeObject <MensajesUsuarios>(usersJson);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Error en la conexión para obtener la lista de todos los usuarios: {0}.", e.Message));
            }
            return(msjUsuarios);
        }
        public IActionResult ObtenerTokenTransacciones([FromBody] string infoUsuarioSesion)
        {
            JwtToken token = null;

            try
            {
                if (infoUsuarioSesion != null)
                {
                    ConsultasUsuarios objConsultasUsuariosBD = new ConsultasUsuarios();
                    MensajesUsuarios  msjUsuarios            = new MensajesUsuarios();
                    msjUsuarios = objConsultasUsuariosBD.ObtenerUsuarios("usuarioshabilitados");
                    if (msjUsuarios.OperacionExitosa)
                    {
                        Usuarios infoUsuario = msjUsuarios.ListaObjetoInventarios.Find(x => x.NickUsuario == infoUsuarioSesion);
                        if (infoUsuario != null)
                        {
                            token = ConfiguracionToken();
                            ConfigBaseDatos.SetCadenaConexion(string.Format("Server=localhost;Port=5432;User Id={0};Password={1};Database=DCICC_BDInventario; CommandTimeout=3020;", infoUsuario.NickUsuario.ToLower(), ConfigEncryption.EncriptarValor(infoUsuario.PasswordUsuario)));
                        }
                        else
                        {
                            return(Unauthorized());
                        }
                    }
                    else
                    {
                        return(Unauthorized());
                    }
                }
                else
                {
                    return(Unauthorized());
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("No se pudo generar el token de autorización para transacciones del usuario: {0}: {1}", infoUsuarioSesion, e.Message));
                return(Unauthorized());
            }
            return(Ok(token.Value));
        }
예제 #22
0
        /// <summary>
        /// Método para actualizar un Usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <param name="actPerfil"></param>
        /// <returns></returns>
        public MensajesUsuarios ActualizarUsuario(Usuarios infoUsuario, int opAct)
        {
            string funcionServ = string.Empty;

            if (opAct == 1)
            {
                funcionServ = "Usuarios/ActualizarUsuario";
            }
            else if (opAct == 2)
            {
                funcionServ = "Usuarios/ActualizarEstadoUsuario";
            }
            else if (opAct == 3)
            {
                funcionServ = "Usuarios/ActualizarPerfilUsuario";
            }
            else
            {
                funcionServ = "Usuarios/ActualizarPasswordUsuario";
            }
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                var response = client_Service.PostAsJsonAsync(funcionServ, infoUsuario).Result;
                if (response.IsSuccessStatusCode)
                {
                    var usersJson = response.Content.ReadAsStringAsync().Result;
                    msjUsuarios = JsonConvert.DeserializeObject <MensajesUsuarios>(usersJson);
                }
            }
            catch (Exception e)
            {
                Logs.Error(string.Format("Error en la conexión para actualizar un usuario: {0}", e.Message));
            }
            return(msjUsuarios);
        }
        /// <summary>
        /// Método para actualizar el Nick de un Usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios ActualizacionNickUsuario(Usuarios infoUsuario)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                ConsultasUsuarios objConsultaUsuarios = new ConsultasUsuarios();
                Usuarios          infoUsuarioBD       = objConsultaUsuarios.ObtenerUsuarioPorId(infoUsuario.IdUsuario).ObjetoInventarios;
                string            nickAnterior        = infoUsuarioBD.NickUsuario;
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE dcicc_usuarios set nick_usuario = @niu where id_usuario = @iu", conn_BD))
                {
                    cmd.Parameters.Add("niu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = infoUsuario.NickUsuario.Trim();
                    cmd.Parameters.Add("iu", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoUsuario.IdUsuario;
                    cmd.ExecuteNonQuery();
                }
                string queryUser = string.Format("ALTER USER {0} RENAME TO {1};", nickAnterior, infoUsuario.NickUsuario.Trim());
                using (var cmd = new NpgsqlCommand(queryUser, conn_BD))
                {
                    cmd.ExecuteNonQuery();
                }
                string queryPwd = string.Format("ALTER USER {0} with password '{1}';", infoUsuario.NickUsuario, ConfigEncryption.EncriptarValor(infoUsuario.PasswordUsuario.Trim()));
                using (var cmd = new NpgsqlCommand(queryPwd, conn_BD))
                {
                    cmd.ExecuteNonQuery();
                }
                tran.Commit();
                msjUsuarios.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = false;
                msjUsuarios.MensajeError     = e.Message;
            }
            return(msjUsuarios);
        }
        /// <summary>
        /// Método para actualizar un Usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios ActualizacionUsuario(Usuarios infoUsuario)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                NpgsqlTransaction tran                = conn_BD.BeginTransaction();
                string            pwdUsuario          = ConfigEncryption.EncriptarValor(infoUsuario.PasswordUsuario);
                ConsultasUsuarios objConsultaUsuarios = new ConsultasUsuarios();
                if (objConsultaUsuarios.ObtenerUsuarioPorNick(infoUsuario.NickUsuario).ObjetoInventarios == null)
                {
                    using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE dcicc_usuarios set id_rol = @ir,nombres_usuario = @nu,password_usuario = @pu,correo_usuario = @cu,telefono_usuario = @tu,telefonocelular_usuario = @tcu,direccion_usuario = @du,habilitado_usuario = @hu where id_usuario = @iu", conn_BD))
                    {
                        cmd.Parameters.Add("ir", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoUsuario.IdRol;
                        cmd.Parameters.Add("nu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoUsuario.NombresUsuario.Trim();
                        cmd.Parameters.Add("pu", NpgsqlTypes.NpgsqlDbType.Text).Value     = pwdUsuario.Trim();
                        cmd.Parameters.Add("cu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoUsuario.CorreoUsuario.Trim();
                        cmd.Parameters.Add("tu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoUsuario.TelefonoUsuario) ? (object)infoUsuario.TelefonoUsuario.Trim() : DBNull.Value;
                        cmd.Parameters.Add("tcu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoUsuario.TelefonoCelUsuario) ? (object)infoUsuario.TelefonoCelUsuario.Trim() : DBNull.Value;
                        cmd.Parameters.Add("du", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoUsuario.DireccionUsuario) ? (object)infoUsuario.DireccionUsuario.Trim() : DBNull.Value;
                        cmd.Parameters.Add("hu", NpgsqlTypes.NpgsqlDbType.Boolean).Value  = infoUsuario.HabilitadoUsuario;
                        cmd.Parameters.Add("iu", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoUsuario.IdUsuario;
                        cmd.ExecuteNonQuery();
                    }
                    tran.Commit();
                    msjUsuarios = ActualizacionNickUsuario(infoUsuario);
                    if (infoUsuario.NombreRolAntiguo != null)
                    {
                        ActualizarRolUsuario(infoUsuario.NombreRolAntiguo.Trim(), infoUsuario.NombreRol.Trim(), infoUsuario.NickUsuario.Trim());
                    }
                    conn_BD.Close();
                }
                else
                {
                    using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE dcicc_usuarios set id_rol = @ir,nombres_usuario = @nu,nick_usuario = @niu,password_usuario = @pu,correo_usuario = @cu,telefono_usuario = @tu,telefonocelular_usuario = @tcu,direccion_usuario = @du,habilitado_usuario = @hu where id_usuario = @iu", conn_BD))
                    {
                        cmd.Parameters.Add("ir", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoUsuario.IdRol;
                        cmd.Parameters.Add("nu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoUsuario.NombresUsuario.Trim();
                        cmd.Parameters.Add("niu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = infoUsuario.NickUsuario.Trim();
                        cmd.Parameters.Add("pu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = pwdUsuario.Trim();
                        cmd.Parameters.Add("cu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoUsuario.CorreoUsuario.Trim();
                        cmd.Parameters.Add("tu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoUsuario.TelefonoUsuario) ? (object)infoUsuario.TelefonoUsuario.Trim() : DBNull.Value;
                        cmd.Parameters.Add("tcu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoUsuario.TelefonoCelUsuario) ? (object)infoUsuario.TelefonoCelUsuario.Trim() : DBNull.Value;
                        cmd.Parameters.Add("du", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoUsuario.DireccionUsuario) ? (object)infoUsuario.DireccionUsuario.Trim() : DBNull.Value;
                        cmd.Parameters.Add("hu", NpgsqlTypes.NpgsqlDbType.Boolean).Value  = infoUsuario.HabilitadoUsuario;
                        cmd.Parameters.Add("iu", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoUsuario.IdUsuario;
                        cmd.ExecuteNonQuery();
                    }
                    if (infoUsuario.NombreRolAntiguo != null)
                    {
                        ActualizarRolUsuario(infoUsuario.NombreRolAntiguo.Trim(), infoUsuario.NombreRol.Trim(), infoUsuario.NickUsuario.Trim());
                    }
                    string query = string.Format("ALTER USER {0} with password '{1}';", infoUsuario.NickUsuario.Trim(), pwdUsuario.Trim());
                    using (var cmd = new NpgsqlCommand(query, conn_BD))
                    {
                        cmd.ExecuteNonQuery();
                    }
                    tran.Commit();
                    conn_BD.Close();
                    msjUsuarios.OperacionExitosa = true;
                }
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = false;
                msjUsuarios.MensajeError     = e.Message;
            }
            return(msjUsuarios);
        }
        /// <summary>
        /// Método para obtener los Usuarios de la base de datos.
        /// </summary>
        /// <param name="nombreFuncion">Tipo de función a llamar: consultausuarios o usuarioshabilitados</param>
        /// <returns></returns>
        public MensajesUsuarios ObtenerUsuarios(string nombreFuncion)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();
            List <Usuarios>  lstUsuarios = new List <Usuarios>();

            try
            {
                using (NpgsqlCommand cmd = new NpgsqlCommand(nombreFuncion, conn_BD))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    using (NpgsqlDataReader dr = cmd.ExecuteReader())
                    {
                        if (nombreFuncion == "consultausuarios")
                        {
                            while (dr.Read())
                            {
                                Usuarios objUsuarios = new Usuarios
                                {
                                    IdUsuario          = (int)dr[0],
                                    IdRol              = (int)dr[1],
                                    NombresUsuario     = dr[2].ToString().Trim(),
                                    NickUsuario        = dr[3].ToString().Trim(),
                                    PasswordUsuario    = ConfigEncryption.DesencriptarValor(dr[4].ToString().Trim()),
                                    CorreoUsuario      = dr[5].ToString().Trim(),
                                    TelefonoUsuario    = dr[6].ToString().Trim(),
                                    TelefonoCelUsuario = dr[7].ToString().Trim(),
                                    DireccionUsuario   = dr[8].ToString().Trim(),
                                    HabilitadoUsuario  = (bool)dr[9],
                                };
                                lstUsuarios.Add(objUsuarios);
                            }
                        }
                        else if (nombreFuncion == "responsablestickets")
                        {
                            while (dr.Read())
                            {
                                Usuarios objUsuarios = new Usuarios
                                {
                                    IdUsuario      = (int)dr[0],
                                    NombresUsuario = dr[1].ToString().Trim(),
                                };
                                lstUsuarios.Add(objUsuarios);
                            }
                        }
                        else
                        {
                            while (dr.Read())
                            {
                                Usuarios objUsuarios = new Usuarios
                                {
                                    IdUsuario          = (int)dr[0],
                                    IdRol              = (int)dr[1],
                                    NombresUsuario     = dr[2].ToString().Trim(),
                                    NickUsuario        = dr[3].ToString().Trim(),
                                    PasswordUsuario    = ConfigEncryption.DesencriptarValor(dr[4].ToString().Trim()),
                                    CorreoUsuario      = dr[5].ToString().Trim(),
                                    TelefonoUsuario    = dr[6].ToString().Trim(),
                                    TelefonoCelUsuario = dr[7].ToString().Trim(),
                                    DireccionUsuario   = dr[8].ToString().Trim(),
                                    HabilitadoUsuario  = (bool)dr[9],
                                    NombreRol          = dr[10].ToString().Trim()
                                };
                                lstUsuarios.Add(objUsuarios);
                            }
                        }
                        conn_BD.Close();
                        msjUsuarios.ListaObjetoInventarios = lstUsuarios;
                        msjUsuarios.OperacionExitosa       = true;
                    }
                }
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa       = false;
                msjUsuarios.MensajeError           = e.Message;
                msjUsuarios.ListaObjetoInventarios = null;
            }
            return(msjUsuarios);
        }
        /// <summary>
        /// Método para actualizar el perfil de un Usuario en la base de datos.
        /// </summary>
        /// <param name="infoUsuario"></param>
        /// <returns></returns>
        public MensajesUsuarios ActualizacionPerfilUsuario(Usuarios infoUsuario)
        {
            MensajesUsuarios msjUsuarios = new MensajesUsuarios();

            try
            {
                NpgsqlTransaction tran = conn_BD.BeginTransaction();
                using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE dcicc_usuarios set nombres_usuario = @nu,correo_usuario = @cu,telefono_usuario = @tu,telefonocelular_usuario = @tcu,direccion_usuario = @du where id_usuario = @iu", conn_BD))
                {
                    cmd.Parameters.Add("nu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoUsuario.NombresUsuario.Trim();
                    cmd.Parameters.Add("cu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = infoUsuario.CorreoUsuario.Trim();
                    cmd.Parameters.Add("tu", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoUsuario.TelefonoUsuario) ? (object)infoUsuario.TelefonoUsuario.Trim() : DBNull.Value;
                    cmd.Parameters.Add("tcu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = !string.IsNullOrEmpty(infoUsuario.TelefonoCelUsuario) ? (object)infoUsuario.TelefonoCelUsuario.Trim() : DBNull.Value;
                    cmd.Parameters.Add("du", NpgsqlTypes.NpgsqlDbType.Varchar).Value  = !string.IsNullOrEmpty(infoUsuario.DireccionUsuario) ? (object)infoUsuario.DireccionUsuario.Trim() : DBNull.Value;
                    cmd.Parameters.Add("iu", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoUsuario.IdUsuario;
                    cmd.ExecuteNonQuery();
                }
                ConsultasUsuarios objConsultaUsuarios = new ConsultasUsuarios();
                if (objConsultaUsuarios.ObtenerUsuarioPorNick(infoUsuario.NickUsuario).ObjetoInventarios == null)
                {
                    ConsultasUsuarios objConsultaUsuariosBD = new ConsultasUsuarios();
                    Usuarios          infoUsuarioBD         = objConsultaUsuariosBD.ObtenerUsuarioPorId(infoUsuario.IdUsuario).ObjetoInventarios;
                    string            nickAnterior          = infoUsuarioBD.NickUsuario.Trim();
                    using (NpgsqlCommand cmd = new NpgsqlCommand("UPDATE dcicc_usuarios set nick_usuario = @niu where id_usuario = @iu", conn_BD))
                    {
                        cmd.Parameters.Add("niu", NpgsqlTypes.NpgsqlDbType.Varchar).Value = infoUsuario.NickUsuario.Trim();
                        cmd.Parameters.Add("iu", NpgsqlTypes.NpgsqlDbType.Integer).Value  = infoUsuario.IdUsuario;
                        cmd.ExecuteNonQuery();
                    }
                    tran.Commit();
                    conn_BD.Close();
                    NpgsqlConnection connBD = new NpgsqlConnection("Server=localhost;Port=5432;User Id=postgres;Password=Admin*1234;Database=DCICC_BDInventario; CommandTimeout=3020;");
                    connBD.Open();
                    NpgsqlTransaction tranBD    = connBD.BeginTransaction();
                    string            queryUser = string.Format("ALTER USER {0} RENAME TO {1};", nickAnterior.Trim(), infoUsuario.NickUsuario.Trim());
                    using (var cmd = new NpgsqlCommand(queryUser, connBD))
                    {
                        cmd.ExecuteNonQuery();
                    }
                    string queryPwd = string.Format("ALTER USER {0} with password '{1}';", infoUsuario.NickUsuario.Trim(), ConfigEncryption.EncriptarValor(infoUsuario.PasswordUsuario.Trim()));
                    using (var cmd = new NpgsqlCommand(queryPwd, connBD))
                    {
                        cmd.ExecuteNonQuery();
                    }
                    tranBD.Commit();
                    connBD.Close();
                }
                else
                {
                    tran.Commit();
                    conn_BD.Close();
                }
                msjUsuarios.OperacionExitosa = true;
            }
            catch (Exception e)
            {
                conn_BD.Close();
                msjUsuarios.OperacionExitosa = false;
                msjUsuarios.MensajeError     = e.Message;
            }
            return(msjUsuarios);
        }