1
resposta

[RESOLUÇÃO] Forma que encontrei de fazer.

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();
1 resposta

Olá, Ronald! Tudo bem?

Muito bom, gostei :)