//genera una lista de canciones (ID, nombre, artistas) public static object CatalogoCanciones() { try { var contexto = new DiscografiaDB(); var setCanciones = contexto.Canciones.AsEnumerable().Select(s => new { s.CancionID, s.Nombre, losArtistas = s.Artistas.Aggregate <Artista, string, string>( String.Empty, (str, a) => str + a.Nombre + ", ", str => str.Substring(0, str.Length - 2)) } ).OrderBy(s => s.losArtistas).ThenBy(s => s.Nombre).ToList(); return(setCanciones); } catch (Exception) { return(null); } }
private void btnLogin_Click(object sender, EventArgs e) { if (txtUsuario.Text.Trim() != String.Empty && txtPassword.Text.Trim() != String.Empty) { Cursor.Current = Cursors.WaitCursor; try { using (var contexto = new DiscografiaDB()) { string passwordEncriptado = Encriptacion.MD5Hash(txtPassword.Text); //obtención del usuario ingresado var usuarioValido = contexto.Usuarios.FirstOrDefault(s => s.User == txtUsuario.Text.Trim() && s.Password == passwordEncriptado); //el registro se encontró if (usuarioValido != null) { //estatus 1: usuario activo if (usuarioValido.Estatus == 1) { Program.AbrirAplicacion = true; Cursor.Current = Cursors.Default; this.Close(); } //estatus 0: usuario suspendido else { Cursor.Current = Cursors.Default; MessageBox.Show("El usuario está suspendido.", "Validación"); } } else { Cursor.Current = Cursors.Default; MessageBox.Show("Usuario o contraseña incorrectos.", "Validación"); } } } catch (DbEntityValidationException ex) { string errorsBuffer = ""; foreach (var error in ex.EntityValidationErrors) { errorsBuffer += error.Entry.Entity.GetType().Name + " in state " + error.Entry.State + " has validation errors:\n"; foreach (var ve in error.ValidationErrors) { errorsBuffer += "\tProperty: " + ve.PropertyName + ", Error: " + ve.ErrorMessage + "\n"; } } MessageBox.Show("Errores de EF:\n" + errorsBuffer, "Error"); } catch (Exception exception) { MessageBox.Show("No es posible acceder a la aplicación. " + exception.Message, "Error"); } Cursor.Current = Cursors.Default; } else { MessageBox.Show("Proporciona usuario y contraseña.", "Validación"); } }