Exemplo n.º 1
0
 /// <summary>
 /// Realiza el proceso de inicio de sesión, comprobando que exista una cuenta en
 /// la base de datos con los datos especificados.
 /// </summary>
 /// <param name="sender">Botón Iniciar sesión</param>
 /// <param name="e">Evento del botón</param>
 private void IniciarSesionButton_Click(object sender, RoutedEventArgs e)
 {
     if (!VerificarCampos())
     {
         MessageBox.Show("Faltan campos por completar.");
         return;
     }
     try {
         string contraseniaCifrada = Herramientas.CifrarConSHA512(contraseniaTextBox.Password);
         Cuenta.IniciarSesion(usuarioTextBox.Text, contraseniaCifrada, (cuentaEncontrada) => {
             if (cuentaEncontrada != null)
             {
                 Sesion.Cuenta      = cuentaEncontrada;
                 Sesion.Revisor     = cuentaEncontrada.Revisor.Count > 0 ? cuentaEncontrada.Revisor.FirstOrDefault() : null;
                 Sesion.Organizador = cuentaEncontrada.Organizador.ToList().FirstOrDefault();
                 if (Sesion.Revisor == null)
                 {
                     new MenuPrincipal().Show();
                 }
                 else
                 {
                     new PanelRevisor().Show();
                 }
                 Close();
             }
             else
             {
                 MessageBox.Show("No existe una cuenta registrada con estos datos.");
             }
         });
     } catch (EntityException) {
         MessageBox.Show("Error al iniciar sesión.");
     }
 }
        /// <summary>
        /// Verifica que los campos estén completos, que se haya seleccionado
        /// el archivo del artículo, y registra el artículo en la base de datos.
        /// </summary>
        /// <param name="sender">Botón</param>
        /// <param name="e">Evento</param>
        private void registrarButton_Click(object sender, RoutedEventArgs e)
        {
            if (!VerificarCampos())
            {
                MessageBox.Show("Faltan campos por completar.");
                return;
            }
            if (!ValidarDatos())
            {
                MessageBox.Show("Debes introducir datos válidos.");
                return;
            }
            if (string.IsNullOrWhiteSpace(archivoSeleccionado))
            {
                MessageBox.Show("Debes seleccionar el archivo que incluye tu artículo.");
                return;
            }
            var autoresArticulo = new Collection <AutorArticulo>();

            foreach (var autor in AutoresList)
            {
                autoresArticulo.Add(new AutorArticulo {
                    Autor = autor.Autor,
                    fecha = DateTime.Now
                });
            }
            var nombreArchivoEncriptado = Herramientas.CifrarConSHA512(
                nombreArchivoSeleccionado + DateTime.Now.ToUniversalTime()
                ) + ".pdf";

            try {
                Articulo nuevoArticulo = new Articulo {
                    titulo        = tituloTextBox.Text,
                    anio          = int.Parse(añoCreacionTextBox.Text),
                    keywords      = keywordsTextBox.Text,
                    resumen       = resumenTextBox.Text,
                    Track         = (Track)trackComboBox.SelectedItem,
                    archivo       = nombreArchivoEncriptado,
                    estado        = "Pendiente",
                    AutorArticulo = autoresArticulo
                };
                if (nuevoArticulo.Registrar())
                {
                    File.Copy(archivoSeleccionado, App.ARTICULOS_DIRECTORIO + "/" + nombreArchivoEncriptado);
                    MessageBox.Show("Artículo registrado.");
                    Close();
                    return;
                }
                MessageBox.Show("Error al establecer una conexión.");
            } catch (DbUpdateException dbUpdateException) {
                MessageBox.Show("Error al establecer una conexión.");
                Console.WriteLine("DbUpdateException@RegistrarArticulo->registrarButton_Click() -> " + dbUpdateException.Message);
            } catch (Exception exception) {
                MessageBox.Show("Error al establecer una conexión.");
                Console.WriteLine("Exception@RegistrarArticulo->registrarButton_Click() -> " + exception.Message);
            }
        }