1
resposta

Conclusão do desafio.

Conclusão do desafio e adição de uma opção para adicionar convidados ao episódio escolhido.

Podcast.cs

class Podcast
{
    //Lista de episodios do Podcast.
    List<Episodio> listaDeEpisodios = new List<Episodio>();
    //Construtores.
    public Podcast(string host, string nome)
    {
        Host = host;
        Nome = nome;
    }
    public string Host { get; }
    public string Nome { get; }
    public int TotalEpisodios { get => listaDeEpisodios.Count(); }

    //Função para adicionar um episódio ao repertório.
    public void AdicionarEpisodio(Episodio Episodio)
    {
        listaDeEpisodios.Add(Episodio);
    }

    //Função para exibir os detalhes dos episódios.
    public void ExibirDetalhes()
    {
        //Títulos.
        Console.WriteLine($"Bem vindo às informações do Podcast {this.Nome}.\nMe chamo {this.Host} e tenho o prazer de lhe apresentar este repertório.");
        Console.WriteLine($"A seguir, uma lista contendo todos os nossos {this.TotalEpisodios} episódios:\n");
        //Apresentação das informações do Episodio.
        foreach (Episodio episodio in listaDeEpisodios)
        {
            Console.WriteLine($"({episodio.Ordem}) Titulo: {episodio.Titulo} \nResumo: {episodio.Resumo}\nDuração: {episodio.Duracao} segundos");
            Console.WriteLine($"\nCom os convidados:");
            //Apresentação dos convidados.
            foreach (string convidado in episodio.listaDeConvidados)
            {
                Console.WriteLine($"-"+convidado);
            }
            Console.WriteLine("\n");
        }
    }
}

Episodio.cs

class Episodio
{
    //Lista de convidados.
    public List<string> listaDeConvidados = new List<string>();
    //Construtores.
    public Episodio(int duracao, string titulo, string resumo, int ordem)
    {
        Duracao = duracao;
        Titulo = titulo;
        Resumo = resumo;
        Ordem = ordem;
    }
    public int Duracao { get; }
    public int Ordem { get; set; }
    public string Titulo { get; }
    public string Resumo { get; }
    
    //Função para adicionar convidados no próprio console.
    public void AdicionarConvidadosLive()
    {
        Console.WriteLine($"Adicione um convidado ao episódio {this.Ordem}: \n");
        string convidado = Console.ReadLine()!;

        while (true)
        {
            if (listaDeConvidados.Contains(convidado))
            {
                Console.WriteLine("O convidado já está na Lista, tente novamente ou termine a operação.\n Tentar novamente: (1)\nTerminar a operação: (2)");
                int opcao = int.Parse(Console.ReadLine()!);
                if (opcao == 1)
                {
                    continue;
                }
                else if (opcao == 2)
                {
                    Console.WriteLine("Terminando a operação em 3 segundos:");
                    Thread.Sleep(3000);
                    Console.Clear();
                    break;
                }
                else 
                {
                    Console.WriteLine("Opção invalida.");
                    break;
                }
            }
            else
            {
                listaDeConvidados.Add(convidado);
                Console.WriteLine($"O convidado {convidado} foi adicionado à lista.");
                Thread.Sleep(3000);
                Console.Clear();
                break;
            }
        }
    }
    //Função para adicionar os convidados no próprio código.
    public void AdicionarConvidadosOff(string convidado)
    {
        listaDeConvidados.Add(convidado);
    }
}

Program.cs

//Instância de Podcast.
Podcast HelloPodcast = new Podcast("Lorenzo", "Hello World Podcast");

//Instância de Episódio e adição de convidados.
Episodio episodio1 = new Episodio(400,"Hello world, Nosso Primeiro Podcast!!","O primeiro episódio do mais novo Podcast sobre programação!",1);
episodio1.AdicionarConvidadosOff("Lorenzo 2");
episodio1.AdicionarConvidadosOff("Lorenzo 3");
HelloPodcast.AdicionarEpisodioOff(episodio1);

//Instância de Episódio e adição de convidados.
Episodio episodio2 = new Episodio(500, "Primeiro programa em C#!!", "Ensinando a produzir seu primeiro programa em C#!",2);
episodio2.AdicionarConvidados("Lorenzo Programador");
HelloPodcast.AdicionarEpisodio(episodio2);

//Exibindo detalhes.
HelloPodcast.ExibirDetalhes();
1 resposta

Oi, Lorenzo! Tudo bem?

Excelente código, parabéns pelo projeto! Espero que esteja gostando do curso! Colocar em execução as atividades propostas pelo professor em aula é uma prática muito importante para internalizarmos o conteúdo. Caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!