1
resposta

[Projeto] Desafio Concluído

Podcast

namespace ProjectAluraPOO.PodcastStream;

public class Podcast
{
    private string Host { get; }
    private string Name { get; }
    private int TotalEpisodes { get; set; }
    private List<string> guestsList = new List<string>();
    private List<Episode> episodesList = new List<Episode>();

    public Podcast(string host, string name)
    {
        Host = host;
        Name = name;
    }

    public void AdicionarEpisodio(Episode episode)
    {
        episodesList.Add(episode);
        TotalEpisodes = episodesList.Count;
    }

    public void ExibirDetalhes()
    {
        string descriptionEpisdode =
            $"""
                Host: {Host}
                Nome: {Name}
                Total de episódios : {TotalEpisodes}
             """;

        Console.WriteLine(descriptionEpisdode);
        Console.WriteLine("\nLista de Convidados: \n");
        ListarConvidados();
    }

    public void AdicionarConvidados()
    {
        Console.WriteLine("Digite o nome do convidado");
        string convidado = Console.ReadLine()!;
        guestsList.Add(convidado);
        Console.WriteLine("Quer adicionar mais um convidado? (S/N)");
        var choice = Console.ReadLine()!;
        if (choice.Equals("sim") || choice.Equals("s"))
        {
            AdicionarConvidados();
        }
        else
        {
            Console.WriteLine("Saindo...");
            Console.Clear();
            Thread.Sleep(200);
        }
    }

    void ListarConvidados()
    {
        foreach (var nameGuests in guestsList)
        {
            Console.WriteLine("* " + nameGuests);
        }
    }

    public void ExibirEpisodios()
    {
        var orderedEpisodes = episodesList.OrderBy(e => e.GetTitle()).ToList();
        foreach (var episode in orderedEpisodes)
        {
            Console.WriteLine(episode.GetTitle());
        }
    }
}

Episódios

namespace ProjectAluraPOO.PodcastStream;

public class Episode
{
    private float Duration { get; set; }
    private string Resume { get; set; }
    private string Title { get; set; }

    public Episode(string title, float duration, string resume)
    {
        Duration = duration;
        Resume = resume;
        Title = title;
    }

    public string GetTitle()
    {
        return Title;
    }
}

Implementação do código na classe principal

using ProjectAluraPOO.PodcastStream;

namespace ProjectAluraPOO;

public class Program
{
    public static void Main(string[] args)
    {
        var podcast = new Podcast("Paulo Silveira", "Hipsters.Tech");
        
        var episodeCsharp = new Episode("Conhecendo o C#", 120, "Destrinchando o C# e conhecendo suas características");
        var episodeJava = new Episode("Falando de Java", 60, "Conversando sobre Java");
        var episodePython = new Episode("Aprendendo Python", 90, "Descobrindo as maravilhas do Python");
        var episodeJS = new Episode("Dominando JavaScript", 120, "Explorando as possibilidades do JavaScript");
        
        podcast.AdicionarEpisodio(episodeCsharp);
        podcast.AdicionarEpisodio(episodeJava);
        podcast.AdicionarEpisodio(episodePython);
        podcast.AdicionarEpisodio(episodeJS);
        
        podcast.AdicionarConvidados();
        podcast.ExibirDetalhes();
        podcast.ExibirEpisodios();
    }
}
1 resposta

Bem completo.