Método Override não reconhece o "Executar" da classe Menu. Com isso nao é possivel avaliar o album, pois ao digitar a opcao 5 ele exibe a opcao 6 que é detalhes...
using ScreenSound.Modelos; namespace ScreenSound.Menus;
internal class MenuAvaliarAlbum : Menu { public override void Executar(Dictionary<string, Banda> bandasRegistradas) { ** base.Executar( **bandasRegistradas);
ExibirTituloDaOpcao("Avaliar álbum");
Console.Write("Digite o nome da banda que deseja avaliar: ");
string nomeDaBanda = Console.ReadLine()!;
if (bandasRegistradas.ContainsKey(nomeDaBanda))
{
Banda banda = bandasRegistradas[nomeDaBanda];
Console.Write("Agora digite o título do álbum: ");
string tituloAlbum = Console.ReadLine()!;
if (banda.Albuns.Any (a=>a.Nome.Equals(tituloAlbum)))
{
Album album = banda.Albuns.First(a => a.Nome.Equals(tituloAlbum));
Console.Write($"Qual a nota que o álbum {tituloAlbum} merece: ");
Avaliacao nota = Avaliacao.Parse(Console.ReadLine()!);
album.AdicionarNota(nota);
Console.WriteLine($"\nA nota {nota.Nota} foi registrada com sucesso para o álbum {tituloAlbum}");
Thread.Sleep(2000);
Console.Clear();
}
else
{
Console.WriteLine($"\nO Álbum {tituloAlbum} não foi encontrado!");
Console.WriteLine("Digite uma tecla para voltar ao menu principal");
Console.ReadKey();
Console.Clear();
}
}
else
{
Console.WriteLine($"\nA banda {nomeDaBanda} não foi encontrada!");
Console.WriteLine("Digite uma tecla para voltar ao menu principal");
Console.ReadKey();
Console.Clear();
}
}
}