namespace Alura.Filmes
{
class Artista
{
public string Nome { get; set; }
public int Idade { get; set; }
public List<Filme> FilmesAtuados { get; set; }
public int QuantidadeDeFilmes => FilmesAtuados.Count;
public Artista(string nome, int idade)
{
Nome = nome;
Idade = idade;
FilmesAtuados = new List<Filme>();
}
public void AdicionarFilme(Filme filme)
{
FilmesAtuados.Add(filme);
if (!filme.Elenco.Contains(this)) filme.AdicionarElenco(this);
}
public void MostrarFilmesAtuados()
{
if (this.FilmesAtuados.Count == 0)
{
Console.WriteLine($"Nenhum filme encontrado na base para {this.Nome}");
return;
}
Console.WriteLine($"Filmes de {this.Nome}...");
foreach (var filme in FilmesAtuados)
{
Console.WriteLine($"Filme: {filme.Titulo}");
}
}
}
}
namespace Alura.Filmes
{
class Filme
{
public List<Artista> Elenco { get; set; }
public string Titulo { get; set; }
public int Duracao { get; set; }
public Filme(string titulo, int duracao, List<Artista> elenco)
{
if (elenco == null)
{
Elenco = new List<Artista>();
}
else
{
Elenco = elenco;
foreach (var artista in Elenco)
{
artista.AdicionarFilme(this);
}
}
Titulo = titulo;
Duracao = duracao;
}
public void AdicionarElenco(Artista artista)
{
Elenco.Add(artista);
if (!artista.FilmesAtuados.Contains(this))
{
artista.AdicionarFilme(this);
}
Console.WriteLine($"{artista} adicionado/a ao elenco.");
}
public void ListarElenco()
{
if (Elenco.Count == 0)
{
Console.WriteLine("Elenco vazio.");
}
else
{
Console.WriteLine("Elenco... ");
foreach (var artista in Elenco)
{
Console.WriteLine($"{artista.Nome} | Idade: {artista.Idade}" );
}
}
}
}
}
using Alura.Filmes;
Filme filme = new Filme("Um sonho de liberdade", 142, new List<Artista>() { new Artista("Tim Robbins", 65), new Artista("Morgan Freeman", 86) });
Filme filme2 = new Filme("O poderoso chefão", 175, new List<Artista>() { new Artista("Marlon Brando", 80), new Artista("Al Pacino", 83), new Artista("Talia Shire", 77) });
List<Filme> meusFilmesFavoritos = new List<Filme>();
meusFilmesFavoritos.Add(filme);
meusFilmesFavoritos.Add(filme2);
foreach (Filme f in meusFilmesFavoritos)
{
Console.WriteLine($"Filme: {f.Titulo}");
Console.WriteLine($"Duracao: {f.Duracao}");
f.ListarElenco();
Console.WriteLine();
}