Boa tarde, pessoal! tudo bem?
Se alguém tiver alguma sugestão.
Resolvi ficar um tempo verificando algumas condições e cheguei a seguinte conclusão:
***************
ALBUM DE MUSICA
***************
NOME: ALEATORIO
******
GENERO
******
POP
*********
DESCRICAO
*********
Enquanto isso, a expressao "música pop" é definida por "música popular, geralmente direcionada a uma audiência jovem.
*********
MUSICAS:
*********
Preciso me encontrar
Trust
Bando.wvn
TEMPO DE ALBUM: 514 segundos
Bom, ficou assim. Porém, também reservei um tempo para testar se tinha ou não algum gênero descrito e se teria alguma descrição. Por exemplo, quando tem um gênero musical e não tem descrição, ele mostra o gênero da musica e alega a falta da descrição; quando não temos gênero, mas temos descrição ele alerta também.
CLASSE ALBUM:
using System.Net.Http.Headers;
class Album
{
private List<Musica> musicaList = new List<Musica>();
private List<Genero> generoMusical = new List<Genero>();
public string Name { get; set; }
public int DuracaoTotal => musicaList.Sum(m => m.Duracao);
public void AdicionarMusica(Musica musica)
{
musicaList.Add(musica);
}
public void AdicionarGenero(Genero genero)
{
generoMusical.Add(genero);
}
public void ExibirMusicasDoAlbum()
{
Console.WriteLine($"NOME: {Name}\n");
foreach (Genero resumoGenero in generoMusical)
{
AdicionarTitulo("GENERO");
if (resumoGenero.Name != null)
{
Console.WriteLine($"{resumoGenero.Name}\n");
}
else
{
Console.WriteLine("Não foi descrito o nome deste gênero. Mas, pode existir uma descrição.\n");
}
AdicionarTitulo("DESCRICAO");
if (resumoGenero.LeDescricao != null)
{
Console.WriteLine($"{resumoGenero.LeDescricao}\n");
}
else
{
Console.WriteLine("\neste gênero não possui descrição!\n");
}
AdicionarTitulo("MUSICAS: ");
foreach (Musica musicas in musicaList)
{
Console.WriteLine($"{musicas.Name}");
}
}
Console.WriteLine($"\nTEMPO DE ALBUM: {DuracaoTotal} segundos");
}
public void AdicionarTitulo(string titulo)
{
int quantidadeDeLetras = titulo.Length;
string asteriscos = string.Empty.PadLeft(quantidadeDeLetras, '*');
Console.WriteLine(asteriscos);
Console.WriteLine(titulo);
Console.WriteLine(asteriscos);
}
}
CLASS GENERO:
using System.Security.Cryptography.X509Certificates;
class Genero
{
public string Name { get; set; }
public string DescricaoDoGenero { get; set; }
public string LeDescricao => DescricaoDoGenero;
}
CLASS MUSICA
using System.Reflection.Metadata.Ecma335;
class Musica
{
public string Name { get; set; }
public string Artista { get; set; }
public int Duracao { get; set; }
private bool Disponivel { get; set; }
public string DescricaoResumida =>
$"A musica {Name} pertence à banda {Artista}";
public void EscreveDisponivel(bool value)
{
Disponivel = value;
}
public bool LeDisponivel()
{
return Disponivel;
}
public void ExibirFichaTecnica()
{
Console.WriteLine($"Nome {Name}");
Console.WriteLine($"Artista {Artista}");
if (Disponivel)
{
Console.WriteLine("Disponível no plano.");
}
else
{
Console.WriteLine("Adquira o plano Plus+");
}
}
}
PROGRAM:
Album AlbumDoRonald = new Album();
AlbumDoRonald.Name = "ALEATÓRIO";
Genero genero1 = new Genero();
genero1.Name = "POP";
genero1.DescricaoDoGenero = "Enquanto isso, a expressão “música pop” é definida por “música popular, geralmente direcionada a uma audiência jovem.";
Musica musica1 = new Musica();
musica1.Name = "Preciso me encontrar";
musica1.Duracao = 213;
Musica musica2 = new Musica();
musica2.Name = "Trust";
musica2.Duracao = 301;
Musica musica3 = new Musica();
musica3.Name = "Bando.wvn";
AlbumDoRonald.AdicionarGenero(genero1);
AlbumDoRonald.AdicionarMusica(musica1);
AlbumDoRonald.AdicionarMusica(musica2);
AlbumDoRonald.AdicionarMusica(musica3);
AlbumDoRonald.AdicionarTitulo("ALBUM DE MÚSICA");
AlbumDoRonald.ExibirMusicasDoAlbum();