/// <summary> /// Logica del Boton Entrar /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnEntrar_Click(object sender, RoutedEventArgs e) { if (txtUsuario.Text.Length == 0 || txtPassword.Password.Length == 0) { txtError.Text = "El email y la constraseña no pueden estar vacíos"; txtUsuario.Focus(); } else if (!Regex.IsMatch(txtUsuario.Text, @"^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$")) { txtError.Text = "Introduzca un email válido"; txtUsuario.Select(0, txtUsuario.Text.Length); txtUsuario.Focus(); } else { string email = txtUsuario.Text; //"*****@*****.**"; string password = txtPassword.Password; //"elias2"; panel.IsEnabled = false; loginViewModel.PanelLoading = true; Thread t = new Thread(new ThreadStart(() => { ServerServiceUsuario serverServiceUsuario = new ServerServiceUsuario(); ServerResponseUsuario serverResponseUsuario = serverServiceUsuario.GetLogin(email, password); Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; })); Dispatcher.Invoke(new Action(() => { loginViewModel.PanelLoading = false; })); if (serverResponseUsuario.error.code == MessageExceptions.OK_CODE) { if (!serverResponseUsuario.listaUsuario[0].rol.nombre.Equals("COMERCIAL")) { Dispatcher.Invoke(new Action(() => { MainViewModel.usuarioDTO = serverResponseUsuario.listaUsuario[0]; })); Dispatcher.Invoke(new Action(() => { mainWindow.cargarUsuario(); })); Dispatcher.Invoke(new Action(() => { mainWindow.Show(); })); Dispatcher.Invoke(new Action(() => { Close(); })); } else { Dispatcher.Invoke(new Action(() => { txtError.Text = "No tienes permisos para acceder a la aplicación"; })); Dispatcher.Invoke(new Action(() => { txtUsuario.Focus(); })); } } else { Dispatcher.Invoke(new Action(() => { txtError.Text = "Usuario o contraseña incorrectos"; })); Dispatcher.Invoke(new Action(() => { txtUsuario.Focus(); })); } })); t.Start(); } }
/// <summary> /// Devuelve los datos con los filtros: Nombre, Email y Rol /// </summary> /// <param name="nombre"></param> /// <param name="email"></param> /// <param name="rol"></param> /// <returns>ServerResponseUsuario</returns> public ServerResponseUsuario GetAllFilter(string nombre, string email, string rol) { ServerResponseUsuario serverResponseUsuario; try { OauthToken oauthToken = ServerService.obtenerToken(); if (null != oauthToken) { var url = Constantes.SERVIDOR + USUARIO + "allFilter/" + nombre + "/" + email + "/" + rol; var httpRequest = (HttpWebRequest)WebRequest.Create(url); httpRequest.Method = "GET"; httpRequest.Accept = "application/json"; httpRequest.Headers["Authorization"] = "Bearer " + oauthToken.access_token; var httpResponse = (HttpWebResponse)httpRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); serverResponseUsuario = JsonSerializer.Deserialize <ServerResponseUsuario>(result); } //Console.WriteLine(httpResponse.StatusCode); } else { serverResponseUsuario = new ServerResponseUsuario(); ErrorBean error = new ErrorBean(); error.code = MessageExceptions.SERVER_ERROR; error.message = MessageExceptions.MSSG_SERVER_ERROR; serverResponseUsuario.error = error; } } catch (System.Exception) { serverResponseUsuario = new ServerResponseUsuario(); ErrorBean error = new ErrorBean(); error.code = MessageExceptions.SERVER_ERROR; error.message = MessageExceptions.MSSG_SERVER_ERROR; serverResponseUsuario.error = error; } return(serverResponseUsuario); }
public AjustesView() { InitializeComponent(); // Mostrar gridAjustes.Visibility = Visibility.Visible; // Ocultar gridGestionUsuario.Visibility = Visibility.Hidden; gridNuevoModificarUsuario.Visibility = Visibility.Hidden; ajustesViewModel = (AjustesViewModel)this.DataContext; //Oculta la gestion de usuarios if ("ADMINISTRATIVO".Equals(MainViewModel.usuarioDTO.rol.nombre)) { btnGestionUsuarios.Visibility = Visibility.Hidden; } else { cmbRol.ItemsSource = ajustesViewModel.observableCollectionRol; panel.IsEnabled = false; ajustesViewModel.PanelLoading = true; Thread t = new Thread(new ThreadStart(() => { Dispatcher.Invoke(new Action(() => { ajustesViewModel.cargaCombo(); })); ServerServiceUsuario serverServiceUsuario = new ServerServiceUsuario(); ServerResponseUsuario serverResponseUsuario = serverServiceUsuario.GetAll(); if (200 == serverResponseUsuario.error.code) { foreach (var item in serverResponseUsuario.listaUsuario) { Dispatcher.Invoke(new Action(() => { observableCollectionUsuario.Add(item); })); } } else { Dispatcher.Invoke(new Action(() => { msgError(serverResponseUsuario.error.message); })); } Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; })); Dispatcher.Invoke(new Action(() => { ajustesViewModel.PanelLoading = false; })); Dispatcher.Invoke(new Action(() => { lstUsuarios.ItemsSource = observableCollectionUsuario; })); })); t.Start(); } }
/// <summary> /// Con el id "null" guarda un nuevo objeto y, en caso contrario, modifica el objeto de la BD /// </summary> /// <param name="UsuarioDTO">objeto de BD</param> /// <param name="id"></param> /// <returns>ServerResponseUsuario</returns> public ServerResponseUsuario Save(UsuarioDTO usuarioDTO, string id) { ServerResponseUsuario serverResponseUsuario; try { OauthToken oauthToken = ServerService.obtenerToken(); if (null != oauthToken) { var url = Constantes.SERVIDOR + USUARIO + "save/" + id; var httpRequest = (HttpWebRequest)WebRequest.Create(url); httpRequest.Method = "POST"; httpRequest.Headers["Authorization"] = "Bearer " + oauthToken.access_token; httpRequest.ContentType = "application/json"; Usuario usuario = transformUsuarioDTOToUsuario(usuarioDTO); if (null != usuario) { var data = JsonSerializer.Serialize <Usuario>(usuario); using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream())) { streamWriter.Write(data); } var httpResponse = (HttpWebResponse)httpRequest.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { var result = streamReader.ReadToEnd(); serverResponseUsuario = JsonSerializer.Deserialize <ServerResponseUsuario>(result); } //Console.WriteLine(httpResponse.StatusCode); } else { serverResponseUsuario = new ServerResponseUsuario(); ErrorBean error = new ErrorBean(); error.code = MessageExceptions.SERVER_ERROR; error.message = MessageExceptions.MSSG_SERVER_ERROR; serverResponseUsuario.error = error; } } else { serverResponseUsuario = new ServerResponseUsuario(); ErrorBean error = new ErrorBean(); error.code = MessageExceptions.SERVER_ERROR; error.message = MessageExceptions.MSSG_SERVER_ERROR; serverResponseUsuario.error = error; } } catch (System.Exception) { serverResponseUsuario = new ServerResponseUsuario(); ErrorBean error = new ErrorBean(); error.code = MessageExceptions.SERVER_ERROR; error.message = MessageExceptions.MSSG_SERVER_ERROR; serverResponseUsuario.error = error; } return(serverResponseUsuario); }
private void btn_Click(object sender, RoutedEventArgs e) { int index = int.Parse(((Button)e.Source).Uid); switch (index) { // BOTON AJUSTES case 0: // Mostrar gridAjustes.Visibility = Visibility.Visible; // Ocultar gridGestionUsuario.Visibility = Visibility.Hidden; gridNuevoModificarUsuario.Visibility = Visibility.Hidden; break; // BOTON ACEPTAR Cambiar Contrasenia case 1: // Mostrar gridAjustes.Visibility = Visibility.Visible; // Ocultar gridGestionUsuario.Visibility = Visibility.Hidden; gridNuevoModificarUsuario.Visibility = Visibility.Hidden; if (verificarPwd()) { txtErrorCambio.Text = ""; panel.IsEnabled = false; ajustesViewModel.PanelLoading = true; Thread t = new Thread(new ThreadStart(() => { ServerServiceUsuario serverServiceUsuario = new ServerServiceUsuario(); ServerResponseUsuario serverResponseUsuario = serverServiceUsuario.ChangePwd(MainViewModel.usuarioDTO.nombre, txtPwdActual.Password, txtPwdNueva.Password, txtPwdNuevaRepetir.Password); if (200 == serverResponseUsuario.error.code) { Dispatcher.Invoke(new Action(() => { mostrarAutoCloseMensaje("Contraseña", "Se ha actualizado la contraseña correctamente."); })); Dispatcher.Invoke(new Action(() => { MainViewModel.usuarioDTO.pwd = txtPwdNueva.Password; })); Dispatcher.Invoke(new Action(() => { limpiarPwd(); })); } else { Dispatcher.Invoke(new Action(() => { msgError(serverResponseUsuario.error.message); })); } Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; })); Dispatcher.Invoke(new Action(() => { ajustesViewModel.PanelLoading = false; })); })); t.Start(); } break; // BOTON GESTION USUARIOS case 2: // Mostrar gridGestionUsuario.Visibility = Visibility.Visible; // Ocultar gridAjustes.Visibility = Visibility.Hidden; gridNuevoModificarUsuario.Visibility = Visibility.Hidden; //Limpia la informacion limpiarInfUsuario(); break; // BOTON NUEVO USUARIO case 3: limpiarInfUsuario(); // Mostrar gridNuevoModificarUsuario.Visibility = Visibility.Visible; btnModifAceptar.Visibility = Visibility.Visible; btnCancelar.Visibility = Visibility.Visible; // Ocultar gridAjustes.Visibility = Visibility.Hidden; gridGestionUsuario.Visibility = Visibility.Hidden; btnEliminar.Visibility = Visibility.Hidden; cmbRolNuevoModif.ItemsSource = ajustesViewModel.observableCollectionRol; modo = Constantes.NUEVO; usuarioModif = new UsuarioDTO(); break; // BOTON ELIMINAR USUARIO case 4: var dialogEliminar = new CustomMessageBox { Caption = "Eliminar", InstructionHeading = "¿Está seguro que quiere eliminar el usuario?", InstructionText = "Esta acción será irreversible", }; dialogEliminar.SetButtonsPredefined(EnumPredefinedButtons.OkCancel); var resultEliminar = dialogEliminar.ShowDialog(); if (resultEliminar.HasValue && resultEliminar.Value && dialogEliminar.CustomCustomDialogResult == EnumDialogResults.Button1) { //El usuario Administrador no puede cambiar su informacion if (null != ajustesViewModel.usuario && MainViewModel.usuarioDTO.id.Equals(ajustesViewModel.usuario.id)) { txtErrorNuevo.Text = "* No puede cambiar su usuario, contacte con el servicio técnico."; btnCancelar.Focus(); } else { panel.IsEnabled = false; ajustesViewModel.PanelLoading = true; Thread t = new Thread(new ThreadStart(() => { ServerServiceUsuario serverServiceUsuario = new ServerServiceUsuario(); ServerResponseUsuario serverResponseUsuario = serverServiceUsuario.Delete(ajustesViewModel.usuario.id); if (200 == serverResponseUsuario.error.code) { Dispatcher.Invoke(new Action(() => { mostrarAutoCloseMensaje("Eliminar", "Se ha eliminado el usuario correctamente."); })); } else { Dispatcher.Invoke(new Action(() => { msgError(serverResponseUsuario.error.message); })); } Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; })); Dispatcher.Invoke(new Action(() => { ajustesViewModel.PanelLoading = false; })); Dispatcher.Invoke(new Action(() => { volver(); })); })); t.Start(); } } break; // BOTON MODIFICAR/ACEPTAR USUARIO case 5: //modificar(null); if (modo == Constantes.NUEVO) { var dialog = new CustomMessageBox { Caption = "Nuevo", InstructionHeading = "¿Está seguro que quiere guardar el usuario?", InstructionText = "Esta acción guardará la información del usuario", }; dialog.SetButtonsPredefined(EnumPredefinedButtons.OkCancel); var result = dialog.ShowDialog(); if (result.HasValue && result.Value && dialog.CustomCustomDialogResult == EnumDialogResults.Button1) { if (cambiosUsuario()) { txtErrorNuevo.Text = ""; panel.IsEnabled = false; ajustesViewModel.PanelLoading = true; Thread t = new Thread(new ThreadStart(() => { ServerServiceUsuario serverServiceUsuario = new ServerServiceUsuario(); ServerResponseUsuario serverResponseUsuario = serverServiceUsuario.Save(usuarioModif, "null"); if (200 == serverResponseUsuario.error.code) { Dispatcher.Invoke(new Action(() => { mostrarAutoCloseMensaje("Nuevo", "Se ha guardado el usuario correctamente."); })); Dispatcher.Invoke(new Action(() => { ajustesViewModel.usuario = usuarioModif; })); } else { Dispatcher.Invoke(new Action(() => { msgError(serverResponseUsuario.error.message); })); } Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; })); Dispatcher.Invoke(new Action(() => { ajustesViewModel.PanelLoading = false; })); Dispatcher.Invoke(new Action(() => { volver(); })); })); t.Start(); } } } else if (modo == Constantes.MODIFICA) { var dialog = new CustomMessageBox { Caption = "Modificar", InstructionHeading = "¿Está seguro que quiere modificar el usuario?", InstructionText = "Esta acción modificará la información del usuario", }; dialog.SetButtonsPredefined(EnumPredefinedButtons.OkCancel); var result = dialog.ShowDialog(); if (result.HasValue && result.Value && dialog.CustomCustomDialogResult == EnumDialogResults.Button1) { if (cambiosUsuario()) { txtErrorNuevo.Text = ""; panel.IsEnabled = false; ajustesViewModel.PanelLoading = true; Thread t = new Thread(new ThreadStart(() => { ServerServiceUsuario serverServiceUsuario = new ServerServiceUsuario(); ServerResponseUsuario serverResponseUsuario = serverServiceUsuario.Save(usuarioModif, usuarioModif.id); if (200 == serverResponseUsuario.error.code) { Dispatcher.Invoke(new Action(() => { mostrarAutoCloseMensaje("Modificar", "Se ha modificado el usuario correctamente."); })); Dispatcher.Invoke(new Action(() => { ajustesViewModel.usuario = usuarioModif; })); } else { Dispatcher.Invoke(new Action(() => { msgError(serverResponseUsuario.error.message); })); } Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; })); Dispatcher.Invoke(new Action(() => { ajustesViewModel.PanelLoading = false; })); Dispatcher.Invoke(new Action(() => { volver(); })); })); t.Start(); } } } break; // BOTON CANCELAR USUARIO case 6: // Mostrar gridGestionUsuario.Visibility = Visibility.Visible; // Ocultar gridAjustes.Visibility = Visibility.Hidden; gridNuevoModificarUsuario.Visibility = Visibility.Hidden; //Limpia la informacion limpiarInfUsuario(); break; } }
private void filtrar() { panel.IsEnabled = false; ajustesViewModel.PanelLoading = true; string nombre = "null"; if (!txtNombre.Text.Equals("")) { nombre = txtNombre.Text.ToString(); } string email = "null"; if (!txtEmail.Text.Equals("")) { email = txtEmail.Text.ToString(); } Object selectedTipo = cmbRol.SelectedItem; string tipo = "null"; if (null != selectedTipo && 0 < cmbRol.SelectedIndex) { tipo = selectedTipo.ToString(); foreach (var item in ajustesViewModel.ListaRol) { if (item.nombre.Equals(tipo)) { tipo = item.id; } } } Thread t = new Thread(new ThreadStart(() => { ServerServiceUsuario serverServiceUsuario = new ServerServiceUsuario(); ServerResponseUsuario serverResponseUsuario = serverServiceUsuario.GetAllFilter(nombre, email, tipo); if (200 == serverResponseUsuario.error.code) { //Limpiar la lista para recuperar la informacion de la busqueda Dispatcher.Invoke(new Action(() => { observableCollectionUsuario.Clear(); })); foreach (var item in serverResponseUsuario.listaUsuario) { Dispatcher.Invoke(new Action(() => { observableCollectionUsuario.Add(item); })); } } else { Dispatcher.Invoke(new Action(() => { msgError(serverResponseUsuario.error.message); })); } Dispatcher.Invoke(new Action(() => { panel.IsEnabled = true; })); Dispatcher.Invoke(new Action(() => { ajustesViewModel.PanelLoading = false; })); Dispatcher.Invoke(new Action(() => { lstUsuarios.ItemsSource = observableCollectionUsuario; })); })); t.Start(); }