Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Desafio - Podcast]

Relato: Eu estava com dificuldades de implementar a ideia que eu estava sobre o desafio, tentei e não conseguia, quando eu vi o resultado do desafio, consegui compreender quase 100% e ler o código, entender, e quando fui reescrever o código, pareceu mais fácil do que era, a minha dificuldade está sendo a implementação, a escrita do mesmo, parece que o cérebro entra em pane da ERROR, mesmo eu conseguindo entender a estrutura e saber fazer...

Está ai o desafio hahaha

namespace desafio_podcast
{
    public class Episodio
    {

        private List<string> convidados = new();
        public Episodio(string titulo, int duracao, int ordem)
        {
            Titulo = titulo;
            Duracao = duracao;
            Ordem = ordem;
        }

        public string Titulo { get; }
        
        public int Duracao { get; }
        public int Ordem { get; }
        public string Resumo => $"{Ordem}. {Titulo} ({Duracao}) min - {string.Join(", ", convidados)} ";


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

    }
        
}
namespace desafio_podcast
{


    class Podcast
    {

        private List<Episodio> episodios = new();
        public Podcast(string host, string nome)
        {
            Host = host;
            Nome = nome;
        }

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

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

        public void ExibirEpisodios()
        {

            Console.WriteLine($"Podcast {Nome} - Apresentado por {Host}!");
            foreach (Episodio episodio in episodios.OrderBy(e => e.Ordem))
            {
                Console.WriteLine(episodio.Resumo);
            }
            string s = TotalEpisodios <= 1 ? "episódio" : "episódios";
            Console.WriteLine($"Este podcast possui {TotalEpisodios} {s}.");
        }
    }

}
Episodios epi1 = new("Técnicas de facilitação", 45, 1);
epi1.AdicionarConvidados("Ramon");

Episodios epi2 = new("Técnicas de aprendizado", 67, 2);
epi2.AdicionarConvidados("Pedro");


Episodios epi3 = new("Técnicas de Manipulação", 45, 3);
epi3.AdicionarConvidados("Flavio");

Podcast podcast = new("Podcast Especial", "Patrick");
podcast.AdicionarEpisodio(epi1);
podcast.AdicionarEpisodio(epi2);
podcast.AdicionarEpisodio(epi3);
podcast.ExibirEpisodios();
1 resposta
solução!

Olá, Patrick.

Tudo bem?

Entendo que você tenha dúvidas na implementação do código, mesmo compreendendo a estrutura e a lógica por trás dele. Isso é completamente normal, especialmente quando estamos aprendendo algo novo. A prática constante vai ajudar você a melhorar cada vez mais!

Analisando o código que você compartilhou. Parece que você entendeu corretamente a estrutura das classes Episodio e Podcast, bem como a relação entre elas. A classe Episodio representa um episódio de podcast, com título, duração, ordem e uma lista de convidados. A classe Podcast representa um podcast, que tem um host, um nome e uma lista de episódios.

No geral você fez um ótimo trabalho. Parabéns! Continue assim praticando e evoluindo.

Espero ter ajudado e bons estudos!