/// <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); } } } }
public async void guardarUsuario() { //Incializamos los servicios de dialog. DialogService dialog = new DialogService(); //Declaramos un objeto de tipo MetroDialogSettings al cual le asignamos las propiedades que contendra el mensaje modal. MetroDialogSettings setting = new MetroDialogSettings(); setting.AffirmativeButtonText = StringResources.lblYes; setting.NegativeButtonText = StringResources.lblNo; //Ejecutamos el método para mostrar el mensaje. El resultado lo asignamos a una variable local. MessageDialogResult result = await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgConfirmacion, setting, MessageDialogStyle.AffirmativeAndNegative); if (result == MessageDialogResult.Affirmative) { //Valida que los campos no estén vacíos. if (Validar() & ValidarSelected()) { // Asignamos el valor de la constraseña random _contraseña = this.GenerarPasswordAleatoria(); if (_contraseña.Length >= 6) { //Declaramos un objeto con el cual se realiza la encriptación Encriptacion encriptar = new Encriptacion(); //Declaramos un objeto de tipo usuarios objUsuario objUsuario = new objUsuario(); //Asignamos los valores al objeto objUsuario.usuario = encriptar.encript(_usuario); objUsuario.nombre = _nombre; objUsuario.APaterno = _aPaterno; objUsuario.AMaterno = _aMaterno; objUsuario.password = encriptar.encript(_contraseña); objUsuario.Correo = Correo; objUsuario.Pathnsf = ""; //datos por default objUsuario.usql = "´©³¶´¦³"; objUsuario.psql = "´‰“sqrr"; //Valida que el nombre de usuario no se repita string validate = DataManagerControlDocumentos.ValidateUsuario(objUsuario); //si no se repite if (validate == null) { // Nos aseguramos que sean iguales _confirmarContraseña = _contraseña; //si las contraseñas son iguales if (_contraseña.Equals(_confirmarContraseña)) { //ejecutamos el método para insertar un registro a la tabla string usuario = DataManagerControlDocumentos.SetUsuario(objUsuario); // Declaramos la ruta para asignarle una foto de usuario por default string url_foto = @"\\MXAGSQLSRV01\documents__\ESPECIFICOS\img\defaultuser.jpg"; // Declaramos valor para el campo bool is_available_email = true; bool temporal_password = true; // Ejecutamos el método para insertar los registros a la tabla TBL_USER_DETAILS DataManagerControlDocumentos.Insert_UserDetail(objUsuario.usuario, url_foto, is_available_email, temporal_password); Usuario _usuario = new Usuario(); _usuario.NombreUsuario = usuario; //si el usuario es diferente de vacío if (usuario != string.Empty) { //Recorremos la lista de roles foreach (var item in _listaRol) { //si el rol fue seleccionado if (item.selected == true) { Model.ControlDocumentos.Rol objRol = new Model.ControlDocumentos.Rol(); objRol.id_rol = item.id_rol; objRol.id_usuario = usuario; //Agregamos el rol de cada usuario int id_rolUsuario = DataManagerControlDocumentos.SetRol_Usuario(objRol); } } //Obtenemos los roles del usuario nuevo IList Roles = DataManager.GetRoles(_usuario.NombreUsuario); _usuario.Roles = new List <Model.Rol>(); foreach (var item in Roles) { 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 _usuario.Roles.Add(rol); } //si el usuario tiene rol de administrador de CIT o dueño de documento if (Module.UsuarioIsRol(_usuario.Roles, 2) || Module.UsuarioIsRol(_usuario.Roles, 3)) { //usuario es admin del cit o dueño del documento _usuario.PerfilCIT = true; } //si el usuario tiene rol de ingeniero if (Module.UsuarioIsRol(_usuario.Roles, 4) || Module.UsuarioIsRol(_usuario.Roles, 5) || Module.UsuarioIsRol(_usuario.Roles, 6) || Module.UsuarioIsRol(_usuario.Roles, 7)) { //usuario tiene rol de ingeniero _usuario.PerfilUserProfile = true; _usuario.PerfilData = true; _usuario.PerfilQuotes = true; _usuario.PerfilRawMaterial = true; _usuario.PerfilStandarTime = true; _usuario.PerfilTooling = true; _usuario.PerfilRGP = true; } //si el usuario tiene rol de administrador del sistema if (Module.UsuarioIsRol(_usuario.Roles, 1)) { //Es administrador _usuario.PerfilCIT = true; _usuario.PerfilData = true; _usuario.PerfilHelp = true; _usuario.PerfilQuotes = true; _usuario.PerfilRawMaterial = true; _usuario.PerfilStandarTime = true; _usuario.PerfilTooling = true; _usuario.PerfilUserProfile = true; _usuario.PerfilRGP = true; } //agregamos los perfiles y privilegios correspondientes DataManager.Set_PerfilUsuario(_usuario); DataManager.Set_PrivilegiosUsuario(_usuario); //se muestra un mensaje de cambios realizados. await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgUsuarioAlta); //Obtenemos la ventana actual. var window = Application.Current.Windows.OfType <MetroWindow>().LastOrDefault(); //Verificamos que la pantalla sea diferente de nulo. if (window != null) { //Cerramos la pantalla window.Close(); } // Declaramos el cuerpo y título del correo string title = "Tu usuario ha sido creado"; string body = ""; // Declaramos lista vacía para el parámetro ObservableCollection <Archivo> ListaVacia = new ObservableCollection <Archivo>(); // Declaramos el objeto Usuario UserCreated = new Usuario(); // Obtenemos el nuevo usuario creado UserCreated = DataManager.GetUsuario(objUsuario.usuario); // Declaramos lista para guardar el nuevo usuario List <objUsuario> ListaUserCreated = new List <objUsuario>(); objUsuario userCreado = new objUsuario(); // Igualamos valores userCreado.Correo = UserCreated.Correo; userCreado.nombre = UserCreated.Nombre; userCreado.APaterno = UserCreated.ApellidoPaterno; userCreado.AMaterno = UserCreated.ApellidoMaterno; userCreado.Details = UserCreated.Details; ListaUserCreated.Add(userCreado); // Cargamos el cuerpo del correo body = "<P> Le envío su usuario y contraseña:</P>"; body += "<P><STRONG> Usuario:</STRONG> " + encriptar.desencript(_usuario.NombreUsuario) + "</P>"; body += "<P><STRONG> Contraseña:</STRONG> " + _contraseña + "</P>"; body += "<P> Favor de respetar minúsculas y mayúsculas.</P>"; body += "<P> Para el acceso a la plataforma, favor de ingresar a la siguiente ruta:</P>"; body += "<P><STRONG> TodosP/R@aul/Deploy</STRONG></P>"; body += "<P> En dicha carpeta se encuentra un archivo llamado View.exe. Favor de ejecutarlo.</P>"; // Abrimos ventana para notificar NotificarAViewModel vmNotificar = new NotificarAViewModel(User, body, ListaVacia, ListaUserCreated, title, "ALTA_USUARIO", 0); WNotificarA ventanaCorreo = new WNotificarA(); ventanaCorreo.DataContext = vmNotificar; ventanaCorreo.ShowDialog(); } else { await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgUsuarioAltaError); } } else { await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgContraseñaDiferente); } } else { await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgUsuarioExistente); } } else { await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgContraseñaCorta); } } else { await dialog.SendMessage(StringResources.ttlAlerta, StringResources.msgFillFlields); } } }