Segue minha solução para o desafio, ficou um pouco diferente da resolução dos instrutores, mas creio que ficou tão funcional quanto.
classe Episodio
class Episodio
{
public Episodio(int numero, string titulo, int duracao)
{
Numero = numero;
Titulo = titulo;
Duracao = duracao;
}
private List<string> convidados = new();
public int Numero { get; }
public string Titulo { get; }
public int Duracao { get; }
public string Resumo => $"{Numero} - {Titulo} ({Duracao}min)\n\t{string.Join(", ",convidados)}\n";
public void AddConvidado(string convidado)
{
convidados.Add(convidado);
}
}
Classe Podcast
class Podcast
{
public Podcast(string nome, string host)
{
Nome = nome;
Host = host;
Episodios = [];
}
public string Nome { get; }
public string Host { get; }
public List<Episodio> Episodios { get; }
public void AddEpisodio(int num, string nome, int duracao)
{
Episodio novoEpisodio = new Episodio(num, nome, duracao);
Episodios.Add(novoEpisodio);
Console.WriteLine($"Episódio {num} - {nome} adicionado ao podcast");
//Console.WriteLine("\n");
}
public void AddConvidados(int numEpisodio, string convidadosStr)
{
Episodio episodio = Episodios.Find(e => e.Numero == numEpisodio);
if (episodio == null)
{
Console.WriteLine($"{numEpisodio} indisponível no podcast {Nome}");
}
else
{
List<string> convidados = convidadosStr.Split(',').Select(x => x.Trim()).ToList();
foreach (string convidado in convidados)
{
episodio.AddConvidado(convidado);
}
}
}
public void ExibirDetalhes()
{
Console.WriteLine($"\n\nPodcast {Nome}, apresentado por {Host}\n");
Episodios.ForEach(episodio => Console.WriteLine(episodio.Resumo));
Console.WriteLine("\n");
}
}
Programa
Podcast nerdcast = new Podcast("Nerdcast","Jovem Nerd & Azaghal");
nerdcast.AddEpisodio(991, "Quarteto Fantástico: família, o universo e tudo mais", 127);
nerdcast.AddConvidados(991,"Carlos Voltor, Katiucha Barcelos, Thiago Tomariz");
nerdcast.AddEpisodio(990, "Ozzy Osbourne: o histórico príncipe das trevas", 107);
nerdcast.AddConvidados(990, "Filipe Figueiredo, Govis, Icles Rodrigues");
nerdcast.AddEpisodio(989, "Superman: James Gunn salvando fãs, esquilos e o DCU", 120);
nerdcast.AddConvidados(989, "Carlos Voltor, Katiucha Barcelos, Leonel Caldela, Marcelo Bassoli");
nerdcast.AddEpisodio(988, "Filmes de Terror Bizarros para Apreciadores Peculiares", 108);
nerdcast.AddConvidados(988, "Carlos Voltor, Ian SBF, Mau Faccio");
nerdcast.AddEpisodio(987, "Profissão: Editor de Gibis e a treta JN x Pipoca e Nanquim", 123);
nerdcast.AddConvidados(987, "Guilherme Briggs, Guga Mafra");
nerdcast.AddEpisodio(986, "Remake do reboot, remake ou continuação de novo?", 97);
nerdcast.AddConvidados(986, "Tucano, Marcelo Bassoli, Katiucha Barcelos");
nerdcast.AddEpisodio(985, "The Studio: The Office para amantes do cinema", 108);
nerdcast.AddConvidados(985, "Portuguesa, Ian SBF, Max Valarezo, Fabiula Nascimento");
nerdcast.AddEpisodio(984, "Especial Dia dos Namorados 2025", 145);
nerdcast.AddConvidados(984, "Sra. Jovem Nerd, Portuguesa, Marcelinho, Sr. K");
nerdcast.AddEpisodio(983, "O pensamento crítico e a força do Pirulla", 101);
nerdcast.AddConvidados(983, "Pirulla");
nerdcast.AddEpisodio(982, "The Last of Us 2: Queremos tentar perdoar?", 152);
nerdcast.AddConvidados(982, "Carlos Voltor, Katiucha Barcelos, Eduardo Spohr");
nerdcast.ExibirDetalhes();