Olá boa tarde, fui fazer o ultimo mão na massa e parecia que estava tudo certo, mas fui executar e a opção 5 que invoca o "MenuMostrarPorAnoLancamento" não esta funcionando, eu clico e nada acontecem, os cmd só pisca e volta pro menu principal
using ScreenSound.Banco;
using ScreenSound.Modelos;
using System;
namespace ScreenSound.Menus
{
internal class MenuMostrarPorAnoDeLancamento : Menu
{
public override void Executar1(DAL<Musica> musicaDAL)
{
base.Executar1(musicaDAL);
ExibirTituloDaOpcao("Exibir músicas por ano de lançamento");
Console.WriteLine("Digite o ano para filtrar as músicas:");
int ano = int.Parse(Console.ReadLine()!);
var musicasPorAno = musicaDAL.ListarPorCondicao(m => m.AnoLancamento == ano);
if (musicasPorAno.Any())
{
Console.WriteLine($"\nMúsicas lançadas em {ano}:");
foreach (var musica in musicasPorAno)
{
Console.WriteLine(musica);
}
}
else
{
Console.WriteLine($"\nNão foram encontradas músicas lançadas em {ano}!");
}
Console.WriteLine("\nDigite uma tecla para voltar ao menu principal");
Console.ReadKey();
Console.Clear();
}
}
}
a classe menu e program ficaram assim:
using ScreenSound.Banco;
using ScreenSound.Modelos;
namespace ScreenSound.Menus;
internal class Menu
{
public void ExibirTituloDaOpcao(string titulo)
{
int quantidadeDeLetras = titulo.Length;
string asteriscos = string.Empty.PadLeft(quantidadeDeLetras, '*');
Console.WriteLine(asteriscos);
Console.WriteLine(titulo);
Console.WriteLine(asteriscos + "\n");
}
public virtual void Executar(DAL<Artista> artistaDAL)
{
Console.Clear();
}
public virtual void Executar1(DAL<Musica> musicaDAL)
{
Console.Clear();
}
}
var context = new ScreenSoundContext();
var artistaDAL = new DAL<Artista>(context);
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(5, new MenuMostrarPorAnoDeLancamento());
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 5 para filtrar as músicas por ano");
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(artistaDAL);
if (opcaoEscolhidaNumerica > 0) ExibirOpcoesDoMenu();
}
else
{
Console.WriteLine("Opção inválida");
}
}
ExibirOpcoesDoMenu();