示例#1
0
        /// <summary>
        /// metodo para eliminar a un usuario
        /// </summary>
        /// <param name="id"></param>
        private async void eliminarusuario(objUsuario id_usuario)
        {
            DialogService       dialog  = new DialogService();
            MetroDialogSettings botones = new MetroDialogSettings();

            Encriptacion encriptar = new Encriptacion();

            botones.AffirmativeButtonText = StringResources.lblYes;
            botones.NegativeButtonText    = StringResources.lblNo;

            if (id_usuario != null)
            {
                MessageDialogResult resultado = await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgDelUsuario, botones, MessageDialogStyle.AffirmativeAndNegative);

                if (resultado == MessageDialogResult.Affirmative)
                {
                    bool r = DataManagerControlDocumentos.ContarDocumentos(encriptar.encript(id_usuario.usuario));

                    if (SelectedItem != null)
                    {
                        // Se manda llamar método para eliminar el usuario de la tabla TBL_USER_DETAILS
                        DataManagerControlDocumentos.Delete_UserDetail(encriptar.encript(id_usuario.usuario));

                        if (r == true)
                        {
                            //si el usuario tiene documentos
                            await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgPrivilegiosUsuario);

                            Model.DataManager.DeletePrivilegiosUsuario(encriptar.encript(id_usuario.usuario));
                            Model.DataManager.DeLete_PerfilUsuario(encriptar.encript(id_usuario.usuario));
                            DataManagerControlDocumentos.DeleteRol_Usuario(encriptar.encript(id_usuario.usuario));

                            ConstructorVista();
                        }
                        else
                        {
                            //si el usuario no tiene documentos
                            Model.DataManager.DeletePrivilegiosUsuario(encriptar.encript(id_usuario.usuario));
                            Model.DataManager.DeLete_PerfilUsuario(encriptar.encript(id_usuario.usuario));
                            DataManagerControlDocumentos.DeleteRol_Usuario(encriptar.encript(id_usuario.usuario));
                            DataManagerControlDocumentos.DeleteUsuarios(id_usuario);

                            await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgDeleteUsuario);

                            ConstructorVista();
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Metodo para guardar los cambios hechos a los datos del usuario
        /// </summary>
        private async void guardardatos()
        {
            DialogService       dialog  = new DialogService();
            MetroDialogSettings botones = new MetroDialogSettings();

            botones.AffirmativeButtonText = StringResources.lblYes;
            botones.NegativeButtonText    = StringResources.lblNo;

            MessageDialogResult result = await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgConfirmacion, botones, MessageDialogStyle.AffirmativeAndNegative);

            if (result == MessageDialogResult.Affirmative)
            {
                //si no se modifico el campo de contraseña pasaremos a guardar los demas datos
                //pero si se modifico haremos las validaciones correspondientes
                if (string.IsNullOrEmpty(_contraseña) || string.IsNullOrEmpty(_confirmarContraseña))
                {
                    //declaramos el objeto para encriptar el usuario
                    Encriptacion encriptar = new Encriptacion();
                    //declaramos un objeto de tipo usuarios
                    objUsuario nuevosdatos = new objUsuario();

                    //pasamos los valores
                    nuevosdatos.usuario  = encriptar.encript(_usuario);
                    nuevosdatos.nombre   = _nombre;
                    nuevosdatos.password = Contraseña;
                    nuevosdatos.APaterno = _Apaterno;
                    nuevosdatos.AMaterno = _Amaterno;
                    nuevosdatos.Correo   = _correo;
                    nuevosdatos.Pathnsf  = _patnsf;
                    //datos por default
                    nuevosdatos.usql = "´©³¶´¦³";
                    nuevosdatos.psql = "´‰“sqrr";

                    //insertamos los cambios a la BD
                    int DatosUsuarios = DataManagerControlDocumentos.UpdateUsuario(nuevosdatos);

                    //obtenemos los roles que tiene un usuario
                    Usuario Dusuario = new Usuario();
                    Dusuario.NombreUsuario = nuevosdatos.usuario;

                    //borramos todos los roles que tenga un usuario
                    int borrar = DataManagerControlDocumentos.DeleteRol_Usuario(nuevosdatos.usuario);

                    //agregamos los roles
                    foreach (var item in ListaTotdosRoles)
                    {
                        if (item.selected == true)
                        {
                            Model.ControlDocumentos.Rol ObjRol = new Model.ControlDocumentos.Rol();

                            //asignamos los valores
                            ObjRol.id_rol     = item.id_rol;
                            ObjRol.id_usuario = nuevosdatos.usuario;

                            //insertamos los cambios en la BD
                            int id_rolusuario = DataManagerControlDocumentos.SetRol_Usuario(ObjRol);
                        }
                    }

                    IList RolesUsuario = DataManager.GetRoles(Dusuario.NombreUsuario);
                    Dusuario.Roles = new List <Model.Rol>();

                    foreach (var item in RolesUsuario)
                    {
                        System.Type tipo = item.GetType();
                        Model.Rol   rol  = new Model.Rol();
                        rol.idRol     = (int)tipo.GetProperty("ID_ROL").GetValue(item, null);
                        rol.NombreRol = (string)tipo.GetProperty("NOMBRE_ROL").GetValue(item, null);

                        //los agregamos a la propiedad de roles
                        Dusuario.Roles.Add(rol);
                    }

                    //eliminar todos los registros de perfil y privilegio.
                    DataManager.DeLete_PerfilUsuario(encriptar.encript(_usuario));
                    DataManager.DeletePrivilegiosUsuario(encriptar.encript(_usuario));

                    //si el usuario tiene rol de dueño de documento o administrador de CIT
                    if (Module.UsuarioIsRol(Dusuario.Roles, 2) || Module.UsuarioIsRol(Dusuario.Roles, 3))
                    {
                        Dusuario.PerfilCIT = true;
                    }
                    //si el usuario tiene rol de ingeniero
                    if (Module.UsuarioIsRol(Dusuario.Roles, 4) || Module.UsuarioIsRol(Dusuario.Roles, 5) || Module.UsuarioIsRol(Dusuario.Roles, 6) || Module.UsuarioIsRol(Dusuario.Roles, 7))
                    {
                        Dusuario.PerfilData        = true;
                        Dusuario.PerfilQuotes      = true;
                        Dusuario.PerfilRawMaterial = true;
                        Dusuario.PerfilStandarTime = true;
                        Dusuario.PerfilTooling     = true;
                        Dusuario.PerfilUserProfile = true;
                        Dusuario.PerfilRGP         = true;
                    }
                    //si el usuario tiene rol de administrador de sistema
                    if (Module.UsuarioIsRol(Dusuario.Roles, 1))
                    {
                        Dusuario.PerfilCIT         = true;
                        Dusuario.PerfilData        = true;
                        Dusuario.PerfilHelp        = true;
                        Dusuario.PerfilQuotes      = true;
                        Dusuario.PerfilRawMaterial = true;
                        Dusuario.PerfilStandarTime = true;
                        Dusuario.PerfilTooling     = true;
                        Dusuario.PerfilUserProfile = true;
                        Dusuario.PerfilRGP         = true;
                    }

                    //agregamos los perfiles y privilegios correspondientes
                    DataManager.Set_PerfilUsuario(Dusuario);
                    DataManager.Set_PrivilegiosUsuario(Dusuario);

                    await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgCambiosRealizados);

                    //obtenemos la ventana anterior
                    var window = Application.Current.Windows.OfType <MetroWindow>().LastOrDefault();

                    if (window != null)
                    {
                        //Cerramos la pantalla actual
                        window.Close();
                    }
                }
                else
                {
                    //verificamos que la longitud de la contraseña sea  mayor o igual que 6
                    if (_contraseña.Length >= 6)
                    {
                        //verificamos que los campos de contraseña y confirmar contraseña sean iguales
                        if (_contraseña.Equals(_confirmarContraseña))
                        {
                            //declaramos el objeto con el cual se encripta la contraseña
                            Encriptacion encriptar = new Encriptacion();

                            //declaramos un objeto de tipo usuarios
                            objUsuario nuevosdatos = new objUsuario();

                            //pasaremos los valores
                            nuevosdatos.usuario  = encriptar.encript(_usuario);
                            nuevosdatos.nombre   = _nombre;
                            nuevosdatos.APaterno = _Apaterno;
                            nuevosdatos.AMaterno = _Amaterno;
                            nuevosdatos.Correo   = _correo;
                            nuevosdatos.password = encriptar.encript(_contraseña);
                            nuevosdatos.Pathnsf  = _patnsf;
                            nuevosdatos.usql     = "´©³¶´¦³";
                            nuevosdatos.psql     = "´‰“sqrr";

                            //insertamos los datos a la BD
                            int datosusuario = DataManagerControlDocumentos.UpdateUsuario(nuevosdatos);

                            Usuario Dusuario = new Usuario();
                            Dusuario.NombreUsuario = nuevosdatos.usuario;

                            //borramos todos los roles que tenga un usuario
                            int borrar = DataManagerControlDocumentos.DeleteRol_Usuario(nuevosdatos.usuario);

                            foreach (var item in ListaTotdosRoles)
                            {
                                if (item.selected == true)
                                {
                                    Model.ControlDocumentos.Rol ObjRol = new Model.ControlDocumentos.Rol();

                                    ObjRol.id_rol     = item.id_rol;
                                    ObjRol.id_usuario = nuevosdatos.usuario;

                                    //le agregamos el rol a cada usuario
                                    int id_RolUsuario = DataManagerControlDocumentos.SetRol_Usuario(ObjRol);
                                }
                            }

                            //obtenemos los roles del usuario
                            IList RolesUsuario = DataManager.GetRoles(Dusuario.NombreUsuario);
                            Dusuario.Roles = new List <Model.Rol>();

                            foreach (var item in RolesUsuario)
                            {
                                System.Type tipo = item.GetType();
                                Model.Rol   rol  = new Model.Rol();
                                rol.idRol     = (int)tipo.GetProperty("ID_ROL").GetValue(item, null);
                                rol.NombreRol = (string)tipo.GetProperty("NOMBRE_ROL").GetValue(item, null);

                                //los agregamos a la propiedad de roles
                                Dusuario.Roles.Add(rol);
                            }
                            //borramos el perfil y los privilegios que tenga el usuario
                            DataManager.DeLete_PerfilUsuario(encriptar.encript(_usuario));
                            DataManager.DeletePrivilegiosUsuario(encriptar.encript(_usuario));

                            //si el usuario tiene rol de dueño de documento o administrador de CIT
                            if (Module.UsuarioIsRol(Dusuario.Roles, 2) || Module.UsuarioIsRol(Dusuario.Roles, 3))
                            {
                                Dusuario.PerfilCIT = true;
                            }
                            //si el usuario tiene rol de ingeniero
                            if (Module.UsuarioIsRol(Dusuario.Roles, 4) || Module.UsuarioIsRol(Dusuario.Roles, 5) || Module.UsuarioIsRol(Dusuario.Roles, 6) || Module.UsuarioIsRol(Dusuario.Roles, 7))
                            {
                                Dusuario.PerfilData        = true;
                                Dusuario.PerfilQuotes      = true;
                                Dusuario.PerfilRawMaterial = true;
                                Dusuario.PerfilStandarTime = true;
                                Dusuario.PerfilTooling     = true;
                                Dusuario.PerfilUserProfile = true;
                                Dusuario.PerfilRGP         = true;
                            }
                            //si el usuario tiene rol de administrador
                            if (Module.UsuarioIsRol(Dusuario.Roles, 1))
                            {
                                Dusuario.PerfilCIT         = true;
                                Dusuario.PerfilData        = true;
                                Dusuario.PerfilHelp        = true;
                                Dusuario.PerfilQuotes      = true;
                                Dusuario.PerfilRawMaterial = true;
                                Dusuario.PerfilStandarTime = true;
                                Dusuario.PerfilTooling     = true;
                                Dusuario.PerfilUserProfile = true;
                                Dusuario.PerfilRGP         = true;
                            }

                            //asignamos los perfiles y los privilegios correspondientes
                            DataManager.Set_PerfilUsuario(Dusuario);
                            DataManager.Set_PrivilegiosUsuario(Dusuario);

                            await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgCambiosRealizados);

                            //obtenemos la ventana anterior
                            var window = Application.Current.Windows.OfType <MetroWindow>().LastOrDefault();

                            if (window != null)
                            {
                                //Cerramos la pantalla actual
                                window.Close();
                            }
                        }
                        else
                        {
                            await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgContraseñaDiferente);
                        }
                    }
                    else
                    {
                        await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgContraseñaCorta);
                    }
                }
            }
        }