示例#1
0
        //----------------------------------------------------------------FUNCIONES ASOCIADAS A EVENTOS----------------------------------------------------------------------------------------

        /// <summary>
        /// Controla el evento click del botón btAsignar, en caso  afirmativo se actualiza la base de datos
        /// y si no hay errores se informa al control padre mediante DialogResult.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        private void BtAsignar_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Ticket ticketAactualizar = Negocio.ObtenerTicket(idTicket);
                ticketAactualizar.TecnicoAsignado = idTecnico;
                ticketAactualizar.Estado          = (int)EstadoIncidencia.asignada;
                if (Negocio.EditarTicket(ticketAactualizar))
                {
                    this.DialogResult = true;
                    this.Close();
                }

                else
                {
                    this.DialogResult = false;
                    VentanaInformacion modal = new VentanaInformacion("Error al asignar técnico", "advertencia");
                    modal.ShowDialog();
                }
            }
            catch (IOException)
            {
                VentanaInformacion modal = new VentanaInformacion("Error al acceder a la base de datos", "advertencia");
                modal.ShowDialog();
            }
        }
示例#2
0
 /// <summary>
 /// Gestiona el evento click de btValorar, en caso de que se pulse se actualiza la valoración en la base de datos
 /// determinando las estrellas seleccionadas y en caso de haber texto, con el texto seleccionado. Actualiza la base de datos
 /// y en caso de valorar se elimina el ticketEnCurso en la base de datos.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void BtValorar_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         Ticket ticketOriginal = Negocio.ObtenerTicket(idTicket);
         if (Negocio.EditarTicket(new Ticket(ticketOriginal.NumTicket, ticketOriginal.IdEquipo, ticketOriginal.IdUsuario, ticketOriginal.FechaEntrada,
                                             ticketOriginal.FechaResolucion, ticketOriginal.Descripcion, ticketOriginal.Resolucion, ticketOriginal.Estado, ticketOriginal.Categoria, ticketOriginal.TecnicoAsignado, ticketOriginal.NotasTecnico, valoracion, tbValoracion.Text)))
         {
             Negocio.EliminarTicketEnCurso(idTicket);
             VentanaInformacion informacion = new VentanaInformacion("Valoración realizada con éxito", "exito");
             informacion.ShowDialog();
             this.DialogResult = true;
             this.Close();
         }
         else
         {
             VentanaInformacion advertencia = new VentanaInformacion("No se ha podido realizar la valoración", "advertencia");
             advertencia.ShowDialog();
         }
     }
     catch (IOException)
     {
         VentanaInformacion modal = new VentanaInformacion("Error al acceder a la base de datos", "advertencia");
         modal.ShowDialog();
     }
 }
        //--------------------------------------------------------------------------------FUNCIONES ASOCIADAS A EVENTOS---------------------------------------------------------------------------

        /// <summary>
        /// Gestiona el evento click del botón btAñadir, va a permitir añadir de forma másiva un listado de objetos a la base de datos
        /// en primer lugar se realizará una selección para determinar que tipo de tabla hemos de rellenar y a continuación se procederá
        /// a actualizar la base de datos.
        /// TODO validar campos, ahora si los campos no son válidos simplemente no se crea el registro, lo ideal sería validar para dar un mensaje
        /// sobre el porque no se crea.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtAñadir_Click(object sender, RoutedEventArgs e)
        {
            int contador = 0;

            //aquí añadir usuarios a la base de datos
            try
            {
                switch (tipoObjeto)
                {
                case "usuario":

                    foreach (Usuario user in listaUsuarios)
                    {
                        user.Password = Utils.Utilidad.CalculateMD5Hash(user.Password);
                        if (Negocio.CrearUsuario(user))
                        {
                            contador++;
                        }
                    }
                    VentanaInformacion modal = new VentanaInformacion(contador + " Usuarios añadidos a la base de datos.", "exito");
                    modal.ShowDialog();
                    break;

                case "localidad":
                    foreach (Localidad local in listaLocalidades)
                    {
                        if (Negocio.CrearLocalidad(local))
                        {
                            contador++;
                        }
                    }
                    VentanaInformacion modal2 = new VentanaInformacion(contador + " Localidades añadidas a la base de datos.", "exito");
                    modal2.ShowDialog();

                    break;

                case "categoria":
                    foreach (Tipo tipo in listaCategorias)
                    {
                        if (Negocio.CrearTipo(tipo))
                        {
                            contador++;
                        }
                    }
                    VentanaInformacion modal3 = new VentanaInformacion(contador + " Categorias añadidas a la base de datos.", "exito");
                    modal3.ShowDialog();
                    break;

                case "equipo":
                    foreach (Equipo equipo in listaEquipos)
                    {
                        if (Negocio.CrearEquipo(equipo))
                        {
                            contador++;
                        }
                    }
                    VentanaInformacion modal4 = new VentanaInformacion(contador + " Equipos añadidos a la base de datos.", "exito");
                    modal4.ShowDialog();
                    break;

                case "sede":
                    foreach (Sede sede in listaSedes)
                    {
                        if (Negocio.CrearSede(sede))
                        {
                            contador++;
                        }
                    }
                    VentanaInformacion modal5 = new VentanaInformacion(contador + " Sedes añadidas a la base de datos.", "exito");
                    modal5.ShowDialog();
                    break;
                }
            }
            catch (IOException)
            {
                VentanaInformacion modal = new VentanaInformacion("Error al acceder a la base de datos", "advertencia");
                modal.ShowDialog();
            }
            this.Close();
        }
示例#4
0
        //-----------------------------------------------------------------------------FUNCIONES ASOCIADAS A EVENTOS------------------------------------------------------------------------


        /// <summary>
        /// Gestiona el evento Click de BtEnviar, permite mandar un mail al usuario con la contraseña generada de forma aleatoria
        /// <see cref="GenerarClaveAleatoria"/>
        /// Verífica el mail y si existe manda la contraseña y actualiza la base de datos "usuario".
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtEnviar_Click(object sender, RoutedEventArgs e)
        {
            // Aquí en destinatario pondríamos destinatario=tbCorreo.Text;
            string destinatario = "*****@*****.**";
            string password     = "******";                     //Aquí iria password del administrador(cuenta sólo para enviar contraseñas)
            string remitente    = "*****@*****.**"; //Aquí iria dirección de correo del administrador.
            string gestorCorreo = "SMTP.Office365.com";       // Para cada gestor de correo es distinta


            System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
            msg.To.Add(new MailAddress(destinatario));
            msg.Subject         = "Información seleccionada";       //Evitamos poner clave, password... por si un filtro busca información.
            msg.SubjectEncoding = System.Text.Encoding.UTF8;
            string clave = GenerarClaveAleatoria();

            msg.Body         = "Su nueva clave es: " + clave;
            msg.BodyEncoding = System.Text.Encoding.UTF8;
            msg.IsBodyHtml   = true;

            msg.From = new MailAddress(remitente);

            //Desde correo de outlook funciona bien
            System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient(gestorCorreo, 587);
            NetworkCredential          myCreds = new NetworkCredential(remitente, password);

            cliente.Credentials = myCreds;

            cliente.EnableSsl = true;

            try
            {
                Usuario usuario = Negocio.VerificarUsuario(tbCorreo.Text);
                if (usuario != null)
                {
                    if (Negocio.EditarUsuario(new Usuario(usuario.UsuarioId, Utilidad.CalculateMD5Hash(clave), usuario.Nombre, usuario.Apellidos, usuario.Extension, usuario.Mail, usuario.NumOficina, usuario.RolUsuario)))
                    {
                        VentanaInformacion modal = new VentanaInformacion("Su clave ha sido restablecida, siga las instrucciones recibidas en su correo electrónico", "exito");
                        modal.ShowDialog();
                    }
                    else
                    {
                        VentanaInformacion modal = new VentanaInformacion("Error al restablecer la clave, reintentelo de nuevo.", "advertencia");
                        modal.ShowDialog();
                    }
                    cliente.Send(msg);
                }

                else
                {
                    VentanaInformacion modal = new VentanaInformacion("El email introducido no es válido", "advertencia");
                    modal.ShowDialog();
                }
            }
            catch (IOException)
            {
                VentanaInformacion modal = new VentanaInformacion("Error al acceder a la base de datos, base de datos no actualizada.", "advertencia");
                modal.ShowDialog();
            }
            catch (Exception)
            {
                VentanaInformacion modal = new VentanaInformacion("Error al enviar el e-mail, revise su conexión.", "advertencia");
                modal.ShowDialog();
            }
        }
示例#5
0
        /// <summary>
        /// Comprueba usuario y contraseña haciendo uso de <see cref="Negocio.VerificarLogin(string, string)"/>
        /// En caso de ser un usuario correcto, determina su rol y en función de él abre la aplicación en modo "cliente", "técnico" o
        /// "administrador". En caso de ingresar tres veces mál la contraseña, muestra un error y cierra la aplicación.
        /// </summary>
        private void IngresarSistema()
        {
            Usuario user = null;

            baseDeDatosOffline = false;

            try
            {
                user = Negocio.VerificarLogin(tbCorreo.Text, Utilidad.CalculateMD5Hash(tbPassword.Password.ToString()));
            }
            catch (IOException e)
            {
                baseDeDatosOffline = true;
                VentanaInformacion modal = new VentanaInformacion(e.Message, "advertencia");
                modal.ShowDialog();
            }
            if (user != null)
            {
                switch (user.RolUsuario)
                {
                case (int)RolUsuario.cliente:
                    VentanaCliente cliente = new VentanaCliente(user);
                    cliente.Owner   = this;
                    this.Visibility = Visibility.Hidden;
                    cliente.Show();
                    break;

                case (int)RolUsuario.tecnico:
                    VentanaTecnico tecnico = new VentanaTecnico(user);
                    tecnico.Owner   = this;
                    this.Visibility = Visibility.Hidden;
                    tecnico.Show();
                    break;

                case (int)RolUsuario.gerente:
                    VentanaGerente gerente = new VentanaGerente(user);
                    gerente.Owner   = this;
                    this.Visibility = Visibility.Hidden;
                    gerente.Show();
                    break;

                case (int)RolUsuario.administrador:
                    VentanaAdministrador principal = new VentanaAdministrador(user);
                    principal.Owner = this;
                    this.Visibility = Visibility.Hidden;
                    principal.Show();
                    break;

                default:
                    MessageBox.Show("No hay contenido para este tipo de usuario");
                    break;
                }
            }
            else
            {
                if (!baseDeDatosOffline)
                {
                    intentos++;
                    if (intentos < INTENTOS_PERMITIDOS)
                    {
                        VentanaInformacion modal = new VentanaInformacion("Usuario o password erróneos, intento " + intentos + " de " + INTENTOS_PERMITIDOS + ".", "advertencia");
                        modal.ShowDialog();
                    }
                    else
                    {
                        VentanaInformacion modal = new VentanaInformacion("Número de intentos, superados", "advertencia");
                        modal.ShowDialog();
                        this.Close();
                    }
                }
            }
        }