0
respostas

[Projeto] Solução do desafio

using Alura.Filmes;



// Atribuição de artistas
Artista a1 = new Artista { Nome = "Vin Diesel", Idade = 56 };
Artista a2 = new Artista { Nome = "Paul Walker", Idade = 40 };  
Artista a3 = new Artista { Nome = "Michelle Rodriguez", Idade = 44 };
Artista a4 = new Artista { Nome = "Dwayne Johnson", Idade = 51 };


// Criação de filmes
Filme f1 = new Filme { Titulo = "Velozes e Furiosos", Duracao = "1:46min"};
Filme f2 = new Filme { Titulo = "Velozes e Furiosos 2", Duracao = "1:47min"};
Filme f3 = new Filme { Titulo = "Velozes e Furiosos 3", Duracao = "1:48min"};
Filme f4 = new Filme { Titulo = "Velozes e Furiosos 4", Duracao = "1:50min"};
Filme f5 = new Filme { Titulo = "Velozes e Furiosos 5", Duracao = "2:10min"};


// Adicionando artistas aos filmes
f1.AdicionarArtista(a1);
f1.AdicionarArtista(a2);
f1.AdicionarArtista(a3);

f2.AdicionarArtista(a1);
f2.AdicionarArtista(a2);
f2.AdicionarArtista(a3);
f2.AdicionarArtista(a4);

f3.AdicionarArtista(a1);
f3.AdicionarArtista(a2);
f3.AdicionarArtista(a3);

f4.AdicionarArtista(a1);
f4.AdicionarArtista(a2);
f4.AdicionarArtista(a4);

f5.AdicionarArtista(a1);
f5.AdicionarArtista(a2);



// Adicionando artistas aos filme
// Guardar em uma lista
List<Filme> filmesFavoritos = new List<Filme> { f1, f2, f3, f4, f5 };

foreach (var filme in filmesFavoritos)
{
    Console.WriteLine($"Filme: {filme.Titulo}");
    Console.WriteLine($"Duração: {filme.Duracao}");

    if (filme.Elenco.Count > 0)
    {
        List<string> nomes = new List<string>();
        foreach (var artista in filme.Elenco)
        {
            nomes.Add(artista.Nome);
        }
        Console.WriteLine("Elenco: " + string.Join(", ", nomes));
    }
    else
    {
        Console.WriteLine(" Elenco: Elenco não informado");
    }
    Console.WriteLine(new string('-', 40));
}
namespace Alura.Filmes;
class Artista
{
    // Propriedades
    public string Nome { get; set; }
    public int Idade { get; set; }
    public List<Filme> FilmesParticipados { get; set; } = new List<Filme>();


    // Método para adicionar um filme ao artista
    public void AdicionarFilme(Filme filme)
    {
        FilmesParticipados.Add(filme);
        filme.Elenco.Add(this);
    }
}
namespace Alura.Filmes;

// Definição da classe Filme
class Filme
{
    // Propriedades
    public string Titulo { get; set; }
    public string Duracao { get; set; }

    public List<Artista> Elenco { get; set; } = new List<Artista>();


    // Método para adicionar um artista ao elenco
    public void AdicionarArtista (Artista artista)
    {
        Elenco.Add(artista);
        artista.FilmesParticipados.Add(this);
    }
}