1
resposta

Problemas com os argumentos

Neste mão na massa, quando é chamado o ArtistaResponse dentro do ArtistasExtensions.cs, são passados 4 argumentos, conforme abaixo:

private static ArtistaResponse EntityToResponse(Artista artista)
{
    return new ArtistaResponse(artista.Id, artista.Nome, artista.Bio, artista.FotoPerfil);
}

Mas o record de ArtistaResponse, além de ter um parâmetro a menos, o terceiro parâmetro não bate com o que é passado, pois é esperado uma List de músicas, mas é passado a bio do artista.

public record ArtistaResponse(int Id, string Name, List<string> Songs);

Pra piorar, o código do github que podemos baixar na aula 4 não tem qualquer código referente a isso para podermos tirar a limpo.

1 resposta

Olá Gian! Como vai?

Pelo que você descreveu, o método EntityToResponse está tentando criar um ArtistaResponse com quatro argumentos, mas o record ArtistaResponse que você definiu espera apenas três, e o terceiro argumento deveria ser uma lista de músicas (List<string> Songs), mas está recebendo a biografia do artista.

Para corrigir isso, você tem algumas opções:

  1. Atualizar o Record ArtistaResponse: Se o objetivo é que o ArtistaResponse contenha a biografia do artista e não uma lista de músicas, você pode alterar a definição do record para incluir a biografia. Ficaria algo assim:

    public record ArtistaResponse(int Id, string Name, string Bio, string FotoPerfil);
    
  2. Modificar o Método EntityToResponse: Se a intenção é realmente passar uma lista de músicas, você precisa modificar o método EntityToResponse para que ele forneça uma lista de músicas em vez da biografia. Isso pode exigir que você tenha acesso a uma lista de músicas associada ao artista. O método poderia ser algo assim:

    private static ArtistaResponse EntityToResponse(Artista artista)
    {
        List<string> musicas = ObterMusicasDoArtista(artista); // Supondo que você tenha uma função para isso
        return new ArtistaResponse(artista.Id, artista.Nome, musicas);
    }
    
  3. Verificar a Estrutura da Classe Artista: Certifique-se de que a classe Artista possui todos os dados necessários para preencher o ArtistaResponse. Pode ser necessário adicionar uma propriedade para as músicas, caso ainda não exista.

Se o código disponível no GitHub não está ajudando, talvez seja uma boa ideia revisar os vídeos e materiais complementares da aula para garantir que você está seguindo as instruções corretas.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.