1
resposta

Desafio: hora da prática C# Dominando a Orientação a Objetos

Boa tarde tudo bem?

por gentileza poderiam avaliar minha solução para esse desafio?

namespace AluraFilmes2.Modelos;
using System;

public class Artista
{
    public int Idade { get; set; }
    public string Name { get; set; }

    public List<Filmes> Filmes = new List<Filmes>();

    public Artista(string name, int idade)
    {
        Name = name;
        Idade = idade;
    }

    public void AddFilmesAtuacao(Filmes filme)
    {
        Filmes.Add(filme);
    }

    public string NomeArtista()
    {
        return Name;
    }
}


namespace AluraFilmes2.Modelos;
using System;

public class Filmes
{
    public string Name { get; set; }
    public double Duration;
    public string Description;
    public string Gender { get; set; }

    public List<Artista> Elenco = new List<Artista>();

    public Filmes(string name, string gender)
    {
        Name = name;
        Gender = gender;
        Duration = AddDuration();
        Description = AddDescription();
        this.AddElenco();
    }

    public double AddDuration()
    {
        Console.WriteLine($"Qual a Duração do Filme {this.Name}? (Tempo em Minutos): ");
        string duracao = Console.ReadLine()!;
        double duratarion = double.Parse(duracao);
        return duratarion;

    }

    public string AddDescription()
    {
        Console.WriteLine($"Adicionar um resume do filme {this.Name}:");
        string resume = Console.ReadLine()!;
        return resume;
    }

    public void AddElenco()
    {
        bool registro = true;
        while (registro)
        {
            Console.WriteLine($"Digite o Nome do Artista Para Adicionar no Elenco do Filme {this.Name}");
            string artista = Console.ReadLine()!;
            Console.WriteLine("Qual sua idade? ");
            string idadeTexto = Console.ReadLine()!;
            int idade = int.Parse(idadeTexto);
            Artista novoArtista = new(artista, idade);
            Elenco.Add(novoArtista);
            novoArtista.AddFilmesAtuacao(this); // Passa a instância atual de Filmes para o método
            Console.WriteLine("Deseja registrar mais algum Artista?  (Y - N )");
            string resposta = Console.ReadLine()!;
            if (resposta.ToUpper() == "Y")
            {
                continue;
            }
            else
            {
                registro = false;
               

            }
        }
    }

    public void ExibirDetalhes()
    {
        
        Console.WriteLine($"Filme: {this.Name}");
        Console.WriteLine($"Duração: {this.Duration}");
        Console.WriteLine($"Genero: {this.Gender}");
        Console.WriteLine($"Descrição: {this.Description}");
        Console.Write($"Elenco:{string.Join(", ", this.Elenco.Select(artista => artista.NomeArtista()))} ");
            }

}


using AluraFilmes2.Modelos;

Filmes gladiador = new("Gladiador", "Ação");

Filmes velosesEFuriosos = new("Veloses e Furiosos", "Ação");
Filmes midsommer = new("MidSommer", "Terror");
Filmes mortalKombat = new("Mortal Kombat", "Ação");
Filmes doseDupla = new("Dose Dupla", "Ação");

gladiador.ExibirDetalhes();
Console.WriteLine("\n----------------");

velosesEFuriosos.ExibirDetalhes();
Console.WriteLine("\n----------------");
midsommer.ExibirDetalhes();
Console.WriteLine("\n----------------");
mortalKombat.ExibirDetalhes();
Console.WriteLine("\n----------------");
doseDupla.ExibirDetalhes();
Console.WriteLine("\n----------------");
1 resposta

Oi, Cristhyan! Tudo bem?

Excelente código, parabéns pelo projeto! Espero que esteja gostando do curso! Colocar em execução as atividades propostas pelo professor em aula é uma prática muito importante para internalizarmos o conteúdo. Caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software