Ao executar o projeto é apresentado a seguinte mensagem no console de depuração: Classes:
Program.cs
using ScreenSound.Banco; using ScreenSound.Menus; using ScreenSound.Modelos;
try { var context = new ScreenSoundContext(); var artistaDAL = new ArtistaDAL(context);
var novoArtista = new Artista("Banda ", "Kabulosus dsafadsfadsfadsfadsf , adfadsfadsfadsfafafd") { Id = 6009};
//artistaDAL.Adicionar(novoArtista);
artistaDAL.Atualizar(novoArtista);
artistaDAL.Deletar(novoArtista);
var listaArtistas = artistaDAL.Listar();
foreach (var artista in listaArtistas)
{
Console.WriteLine(artista);
}
} catch (Exception ex) { Console.WriteLine(ex.Message); }
return;
Artista ira = new Artista("Ira!", "Banda Ira!"); Artista beatles = new("The Beatles", "Banda The Beatles");
Dictionary<string, Artista> artistasRegistrados = new(); artistasRegistrados.Add(ira.Nome, ira); artistasRegistrados.Add(beatles.Nome, beatles);
Dictionary<int, Menu> opcoes = new(); opcoes.Add(1, new MenuRegistrarArtista()); opcoes.Add(2, new MenuRegistrarMusica()); opcoes.Add(3, new MenuMostrarArtistas()); opcoes.Add(4, new MenuMostrarMusicas()); opcoes.Add(-1, new MenuSair());
void ExibirLogo() { Console.WriteLine(@"
░██████╗░█████╗░██████╗░███████╗███████╗███╗░░██╗ ░██████╗░█████╗░██╗░░░██╗███╗░░██╗██████╗░ ██╔════╝██╔══██╗██╔══██╗██╔════╝██╔════╝████╗░██║ ██╔════╝██╔══██╗██║░░░██║████╗░██║██╔══██╗ ╚█████╗░██║░░╚═╝██████╔╝█████╗░░█████╗░░██╔██╗██║ ╚█████╗░██║░░██║██║░░░██║██╔██╗██║██║░░██║ ░╚═══██╗██║░░██╗██╔══██╗██╔══╝░░██╔══╝░░██║╚████║ ░╚═══██╗██║░░██║██║░░░██║██║╚████║██║░░██║ ██████╔╝╚█████╔╝██║░░██║███████╗███████╗██║░╚███║ ██████╔╝╚█████╔╝╚██████╔╝██║░╚███║██████╔╝ ╚═════╝░░╚════╝░╚═╝░░╚═╝╚══════╝╚══════╝╚═╝░░╚══╝ ╚═════╝░░╚════╝░░╚═════╝░╚═╝░░╚══╝╚═════╝░ "); Console.WriteLine("Boas vindas ao Screen Sound 3.0!"); }
void ExibirOpcoesDoMenu() { ExibirLogo(); Console.WriteLine("\nDigite 1 para registrar um artista"); Console.WriteLine("Digite 2 para registrar a música de um artista"); Console.WriteLine("Digite 3 para mostrar todos os artistas"); Console.WriteLine("Digite 4 para exibir todas as músicas de um artista"); Console.WriteLine("Digite -1 para sair"); Console.Write("\nDigite a sua opção: "); string opcaoEscolhida = Console.ReadLine()!; int opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida); if (opcoes.ContainsKey(opcaoEscolhidaNumerica)) { Menu menuASerExibido = opcoes[opcaoEscolhidaNumerica]; menuASerExibido.Executar(artistasRegistrados); if (opcaoEscolhidaNumerica > 0) ExibirOpcoesDoMenu(); } else { Console.WriteLine("Opção inválida"); } } ExibirOpcoesDoMenu();
ArtistaDAL.cs
using Microsoft.Data.SqlClient; using ScreenSound.Modelos; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ScreenSound.Banco { internal class ArtistaDAL { private readonly ScreenSoundContext context;
public ArtistaDAL(ScreenSoundContext context)
{
this.context = context;
}
public IEnumerable<Artista> Listar()
{
return context.Artistas.ToList();
}
public void Adicionar(Artista artista)
{
context.Artistas.Add(artista);
context.SaveChanges();
}
public void Atualizar(Artista artista)
{
context.Artistas.Update(artista);
context.SaveChanges();
}
public void Deletar(Artista artista)
{
context.Artistas.Remove(artista);
context.SaveChanges();
}
}
}
ScreenSoundContext.cs
using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore; using ScreenSound.Modelos; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ScreenSound.Banco { internal class ScreenSoundContext : DbContext { public DbSet Artistas { get; set; }
private string connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=ScreenSoundBD;Integrated Security=True;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False";
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(connectionString);
}
}
}