// Play Track
string mensagemInicial = "Bem-vindo ao Play Track";
Dictionary<string, List<int>> dicionarioBandas = [];
void ExibirLogo()
{
Console.WriteLine(@"
██████╗░██╗░░░░░░█████╗░██╗░░░██╗ ████████╗██████╗░░█████╗░░█████╗░██╗░░██╗
██╔══██╗██║░░░░░██╔══██╗╚██╗░██╔╝ ╚══██╔══╝██╔══██╗██╔══██╗██╔══██╗██║░██╔╝
██████╔╝██║░░░░░███████║░╚████╔╝░ ░░░██║░░░██████╔╝███████║██║░░╚═╝█████═╝░
██╔═══╝░██║░░░░░██╔══██║░░╚██╔╝░░ ░░░██║░░░██╔══██╗██╔══██║██║░░██╗██╔═██╗░
██║░░░░░███████╗██║░░██║░░░██║░░░ ░░░██║░░░██║░░██║██║░░██║╚█████╔╝██║░╚██╗
╚═╝░░░░░╚══════╝╚═╝░░╚═╝░░░╚═╝░░░ ░░░╚═╝░░░╚═╝░░╚═╝╚═╝░░╚═╝░╚════╝░╚═╝░░╚═╝");
Console.WriteLine(mensagemInicial);
}
void ExibirOpcoesMenu()
{
ExibirLogo();
Console.WriteLine("\n1. Registrar uma banda");
Console.WriteLine("2. Exibir todas as bandas");
Console.WriteLine("3. Avaliar uma banda");
Console.WriteLine("4. Exibir a avaliação de uma banda");
Console.WriteLine("5. Sair da aplicação");
Console.Write("\nSelecione uma das opções acima: ");
string opcaoSelecionada = Console.ReadLine()!; // Exclamação para não retornar nulo
int opcaoSelecionadaNumerica = int.Parse(opcaoSelecionada);
switch (opcaoSelecionadaNumerica)
{
case 1:
RegistrarBanda();
break;
case 2:
ExibirBandas();
break;
case 3:
AvaliarBanda();
break;
case 4:
ExibirAvaliacaoBanda();
break;
case 5:
Console.WriteLine("\nAté logo!");
break;
default:
Console.WriteLine("\nOpção inválida.");
break;
}
}
void RegistrarBanda()
{
Console.Clear();
Console.WriteLine("Registro de Bandas");
Console.Write("\nDigite o nome de uma banda: ");
string nomeBanda = Console.ReadLine()!; // Exclamação para não retornar nulo
dicionarioBandas.Add(nomeBanda, new List<int>());
Console.WriteLine($"\nA banda {nomeBanda} foi registrada com sucesso");
Thread.Sleep(1000);
Console.Clear();
ExibirOpcoesMenu();
}
void ListarBandas()
{
int index = 1;
foreach (var bandas in dicionarioBandas.Keys)
{
Console.WriteLine($"{index}. {bandas}");
index++;
}
}
void ExibirBandas()
{
Console.Clear();
Console.WriteLine("Listagem de Bandas\n");
ListarBandas();
PressionarTeclaParaContinuar();
}
void VerificaSeBandaExiste(string nomeBanda)
{
Console.WriteLine($"\nA banda {nomeBanda} não foi encontrada!");
Thread.Sleep(750);
Console.Clear();
ExibirOpcoesMenu();
}
void PressionarTeclaParaContinuar()
{
Console.Write("Pressione qualquer tecla para continuar");
Console.ReadKey();
Console.Clear();
ExibirOpcoesMenu();
}
void AvaliarBanda()
{
Console.Clear();
Console.WriteLine("Avaliação de Bandas (Avaliar)\n");
ListarBandas();
Console.Write("\nSelecione o nome de uma das bandas acima: ");
string nomeBanda = Console.ReadLine()!;
if (dicionarioBandas.ContainsKey(nomeBanda))
{
Console.Write($"Dê uma nota para a banda {nomeBanda}: ");
int nota = int.Parse(Console.ReadLine()!);
dicionarioBandas[nomeBanda].Add(nota);
Console.WriteLine($"\nBanda avaliada com sucesso!");
Thread.Sleep(750);
Console.Clear();
ExibirOpcoesMenu();
}
else
{
VerificaSeBandaExiste(nomeBanda);
}
}
void ExibirAvaliacaoBanda()
{
Console.Clear();
Console.WriteLine("Avaliação de Bandas (Avaliar)\n");
ListarBandas();
Console.Write("Digite o nome de uma das bandas acima: ");
string nomeBanda = Console.ReadLine()!;
if(dicionarioBandas.ContainsKey(nomeBanda))
{
List<int> notasBanda = dicionarioBandas[nomeBanda];
Console.WriteLine($"\nA média da banda {nomeBanda} é {notasBanda.Average()}.");
PressionarTeclaParaContinuar();
}
else
{
VerificaSeBandaExiste(nomeBanda);
}
}
// Início do Programa
ExibirOpcoesMenu();