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