1
resposta

[Projeto] Desafio Podcast

class Podcast
{
    public Podcast(Host host, string nome)
    {
        Host = host;
        Nome = nome;
    }

    private List<Episodio> episodios = new List<Episodio>();

    public Host Host { get; }
    public string Nome { get; }
    public int TotalEpisodios => episodios.Count();

    public void AdicionarEpisodio(Episodio episodio)
    {
        episodios.Add(episodio);
    }

    public void ExibirDetalhes()
    {
        Console.WriteLine($"Nome: {Nome}, Host: {Host.Nome}\n");
        Console.WriteLine($"Lista de episódios:");
        foreach (var episodio in episodios.OrderBy(x => x.Ordem))
        {
            Console.WriteLine($"{episodio.Resumo}");    
        }

        Console.WriteLine($"Total de episódios: {TotalEpisodios}");
    }
}

class Host
{
    public Host(string nome)
    {
        Nome = nome;
    }

    public string Nome { get; }
}

class Episodio
{
    public Episodio(int duracao, int ordem, string titulo)
    {
        Duracao = duracao;
        Ordem = ordem;
        Titulo = titulo;
    }

    private List<Convidado> convidados { get; } = new List<Convidado>();
    public int Duracao { get; }
    public int Ordem { get; }
    public string Titulo { get; }
    public string Resumo => $"Número: {Ordem}, Título: {Titulo}, Duração: {Duracao}, Convidados: {string.Join(", ", convidados.Where(x => x.Confirmado).Select(x => x.Nome))}";

    public void AdicionarConvidados(Convidado convidado)
    {
        convidados.Add(convidado);
    }
}

class Convidado
{
    public Convidado(string nome, bool confirmado)
    {
        Nome = nome;
        Confirmado = confirmado;
    }

    public string Nome { get; }

    public bool Confirmado { get; }
}

var episodio = new Episodio(60, 1, "Teste");
var episodio2 = new Episodio(60, 2, "Teste 2");
var episodio3 = new Episodio(60, 3, "Teste 3");

var convidado = new Convidado("Eduardo", true);
var convidado2 = new Convidado("Joao", false);
var convidado3 = new Convidado("Maria", true);
var convidado4 = new Convidado("Lucas", false);
var convidado5 = new Convidado("Jose", true);

episodio.AdicionarConvidados(convidado);
episodio2.AdicionarConvidados(convidado2);
episodio3.AdicionarConvidados(convidado3);
episodio.AdicionarConvidados(convidado4);
episodio2.AdicionarConvidados(convidado5);

var host = new Host("Marcelo");

var podcast = new Podcast(host, "CityCast");

podcast.AdicionarEpisodio(episodio);
podcast.AdicionarEpisodio(episodio3);
podcast.AdicionarEpisodio(episodio2);

podcast.ExibirDetalhes();
1 resposta

Olá, Eduardo! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o encapsulamento para estruturar classes de podcast com C#, utilizou muito bem a coleção genérica List para organizar episódios e convidados e ainda compreendeu a importância da orientação a objetos para modelar entidades e relacionamentos de forma clara e reutilizável.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!