Artista:
namespace Alura.Filmes
{
class Artista
{
private List<Filme> _filmesAtuados = new();
public string Nome { get; set; }
public int Idade { get; set; }
public List<Filme> FilmesAtuados => _filmesAtuados;
public Artista(string nome, int idade)
{
this.Nome = nome;
this.Idade = idade;
}
public void AdicionarFilmeAtuado(Filme filme)
{
FilmesAtuados.Add(filme);
}
public void ExibirInformacoesArtista()
{
Console.WriteLine(Nome);
Console.WriteLine($"Filmes em que atuou: \nFilmes: {string.Join(", ", FilmesAtuados.Select(f => f.Titulo))}");
}
}
}
Filme:
namespace Alura.Filmes
{
class Filme
{
private List<Artista> _elenco = new();
public string Titulo { get; set; }
public int AnoLancamento { get; set; }
public int Duracao { get; set; }
public List<Artista> Elenco => _elenco;
public string ResumoFilme => $"{Titulo} - {AnoLancamento}" +
$"\nElenco: {string.Join(", ", Elenco.Select(a => a.Nome))}";
public Filme(string titulo, int anoLancamento, int duracao)
{
this.Titulo = titulo;
this.AnoLancamento = anoLancamento;
this.Duracao = duracao;
List<Artista> Elenco = _elenco;
}
public Filme()
{
}
public void AdicionarFilmeLista(Filme filme)
{
List<Filme> ListaFilmes = new();
ListaFilmes.Add(filme);
}
public void AdicionarArtistaAoFilme(Artista artista)
{
Elenco.Add(artista);
artista.AdicionarFilmeAtuado(this);
}
public void ExibirFilme()
{
Console.WriteLine(ResumoFilme);
}
}
}
Main:
using Alura.Filmes;
class Program
{
public static void Main(string[] args)
{
Filme filme = new();
Filme f1 = new ("Cidade de Deus",2002, 130);
Filme f2 = new ("Tropa de Elite",2007, 115);
Filme f3 = new ("De Volta para o Futuro",1985, 116);
Filme f4 = new ("Vingadores Ultimato", 2019, 181);
Filme f5 = new ("Parasita", 2019, 132);
Filme f6 = new ("Impuros", 2019, 112);
filme.AdicionarFilmeLista(f1);
filme.AdicionarFilmeLista(f2);
filme.AdicionarFilmeLista(f3);
filme.AdicionarFilmeLista(f4);
filme.AdicionarFilmeLista(f5);
Artista a1 = new("Alexandre Rodrigues", 42);
Artista a2 = new("Leandro Firmino", 47);
f1.AdicionarArtistaAoFilme(a1);
f1.AdicionarArtistaAoFilme(a2);
f6.AdicionarArtistaAoFilme(a2);
f1.ExibirFilme();
f2.ExibirFilme();
f3.ExibirFilme();
f4.ExibirFilme();
f5.ExibirFilme();
Console.WriteLine("Artistas: ");
a1.ExibirInformacoesArtista();
a2.ExibirInformacoesArtista();
}
}