2
respostas

Metodo ConverteDoTexto()

se resumir fica mais curto e mais legível, desta forma!

2 respostas
using Alura.Adopet.Console.Modelos;

namespace Alura.Adopet.Console.Util
{
    public static class PetAPartirDoCsv
    {
        public static Pet ConverteDoTexto(this string? linha)
        {
            string[]? propriedades = linha?.Split(';') ?? throw new ArgumentNullException("Texto não pode ser nulo!");
            if (string.IsNullOrEmpty(linha))
                throw new ArgumentException("Texto não pode ser vazio!");
            if (propriedades.Length != 3)
                throw new ArgumentException("Texto inválido!");
            if (!Guid.TryParse(propriedades[0], out Guid petId))
                throw new ArgumentException("GUID inválido");
            if (!int.TryParse(propriedades[2], out int tipoPet) || (tipoPet != 0 && tipoPet != 1))
                throw new ArgumentException("Tipo de Pet inválido!");
            return new Pet(petId, propriedades[1], tipoPet == 0 ? TipoPet.Gato : TipoPet.Cachorro);
        }
    }
}

Olá, Willian. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ficou ótima a forma como você organizou a validação no método ConverteDoTexto. A sequência de verificações torna o código mais claro e evita erros futuros — isso mostra atenção aos detalhes e às boas práticas que o curso propõe.

Uma dica interessante para o futuro é usar a interpolação de string com string.IsNullOrWhiteSpace para deixar a verificação de vazio mais completa. Veja este exemplo:


if (string.IsNullOrWhiteSpace(linha)) 
    throw new ArgumentException("Texto nao pode estar em branco.");

Esse código verifica se a string é nula, vazia ou composta apenas por espaços.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!