Reduzi o máximo de código no programa.cs:
- Program
using ScreenSound.Menus;
using ScreenSound.Modelos;
Menu menu = new Menu();
menu.ExibirOpcoesDoMenu();
- Menu
namespace ScreenSound.Menus
{
internal class Menu
{
Dictionary<string, Banda> bandasIniciais = new();
public void ExibirOpcoesDoMenu()
{
if (bandasIniciais.Count == 0)
bandasIniciais = InserirBandasIniciais();
ExibirLogo();
Console.WriteLine("\nDigite 1 para registrar uma banda");
Console.WriteLine("Digite 2 para registrar o álbum de uma banda");
Console.WriteLine("Digite 3 para mostrar todas as bandas");
Console.WriteLine("Digite 4 para avaliar uma banda");
Console.WriteLine("Digite 5 para exibir a média de notas de uma banda");
Console.WriteLine("Digite -1 para sair");
try
{
Console.Write("\nDigite a sua opção: ");
string opcaoEscolhida = Console.ReadLine()!;
int opcaoEscolhidaNumerica = int.Parse(opcaoEscolhida);
switch (opcaoEscolhidaNumerica)
{
case 1:
new MenuRegistrarBanda().Executar(bandasIniciais);
ExibirOpcoesDoMenu();
break;
case 2:
new MenuRegistrarAlbum().Executar(bandasIniciais);
ExibirOpcoesDoMenu();
break;
case 3:
new MenuExibirBandas().Executar(bandasIniciais);
ExibirOpcoesDoMenu();
break;
case 4:
new MenuAvaliarBanda().Executar(bandasIniciais);
ExibirOpcoesDoMenu();
break;
case 5:
new MenuExibirDetalhes().Executar(bandasIniciais);
ExibirOpcoesDoMenu();
break;
case -1:
Console.WriteLine("Tchau tchau :)");
break;
default:
Console.WriteLine("Opção inválida");
break;
}
}
catch (FormatException)
{
Console.WriteLine("Por favor, insira uma opção válida (número).");
Thread.Sleep(3000);
Console.Clear();
ExibirOpcoesDoMenu();
}
catch (Exception ex)
{
Console.WriteLine($"Ocorreu um erro: {ex.Message}");
Thread.Sleep(4000);
Console.Clear();
ExibirOpcoesDoMenu();
}
}
public Dictionary<string, Banda> InserirBandasIniciais()
{
Banda ira = new("Ira!");
ira.AdicionarNota(new Avaliacao(8));
ira.AdicionarNota(new Avaliacao(9));
ira.AdicionarNota(new Avaliacao(10));
Banda ironMaiden = new("Iron Maiden");
ironMaiden.AdicionarNota(new Avaliacao(10));
bandasIniciais = new Dictionary<string, Banda>
{
{ ira.Nome, ira },
{ ironMaiden.Nome, ironMaiden }
};
return bandasIniciais;
}
void ExibirLogo()
{
Console.WriteLine(@"
[LOGO]
Boas vindas ao Screen Sound 2.0!");
}
}
}