1
resposta

[Projeto] Projeto Json - ultimo desafio

using ChallengeLInq06; using System.Text.Json;

class program { static void Main() { string caminhoDoArquivo = @"C:\Users\jobbo\source\repos\ChallengeLInq05\ChallengeLInq05\bin\Debug\net8.0\pessoas.json"; List pessoas = new List();

    try
    {
        if (File.Exists(caminhoDoArquivo))

        {
            string resposta = File.ReadAllText(caminhoDoArquivo);
            pessoas = JsonSerializer.Deserialize<List<Pessoa>>(resposta) ?? new List<Pessoa>();

        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Temos uma problemas Houston:{ex.Message}");
    }

    while (true)
    {
        // Exibir as opções
        Console.WriteLine("Escolha as opções:");
        Console.WriteLine("1. Adicionar Pessoa");
        Console.WriteLine("2. Visualizar Lista de Pessoas");
        Console.WriteLine("3. Pesquisar Por Idade");
        Console.WriteLine("4. Salvar e Sair");

        // Ler a escolha do usuário
        string choice = Console.ReadLine();

        // Estrutura de controle de escolhas
        switch (choice)
        {
            case "1":
                AdicionarPessoa(pessoas);
                break;
            case "2":
                VisualizarListadePessoas(pessoas);
                break;
            case "3":
                PesquisarIdade(pessoas);
                break;
            case "4":
                SalvarPessoas(pessoas, caminhoDoArquivo);
                return;
            default:
                Console.WriteLine("Escolha inválida. Por favor, tente novamente.");
                break;
        }
    }

}
static void AdicionarPessoa(List<Pessoa> pessoas)
{

    Console.WriteLine("Digite o nome da Pessoa: ");
    string nome = Console.ReadLine();
    Console.WriteLine("Digite a idade: ");
    int idade;
    while (!int.TryParse(Console.ReadLine().Trim(), out idade))
    {
        Console.WriteLine("Idade inválida, por favor insira um número inteiro:");
    }
    Console.WriteLine("Digite o endereço de Email: ");
    string email = Console.ReadLine();


    Pessoa pessoa = new Pessoa(nome, idade, email);
    pessoas.Add(pessoa);

}

static void SalvarPessoas(List<Pessoa> pessoas, string caminhoDoArquivo)
{
    string json = JsonSerializer.Serialize(pessoas);

    File.WriteAllText(caminhoDoArquivo, json);
    Console.WriteLine("O Arquivo  foi salvo e o você sairá do programa.");
}

static void VisualizarListadePessoas(List<Pessoa> pessoas)
{
    if (pessoas.Count == 0)
    {
        Console.WriteLine("Nenhuma pessoa adicionada ainda.");
    }
    else
        Console.WriteLine("Pessoas:");
    for (int i = 0; i < pessoas.Count; i++)
    {
        Pessoa pessoa = pessoas[i];
        Console.WriteLine($"{i + 1}. Nome: {pessoa.Nome}, Idade: {pessoa.Idade}, Email: {pessoa.Email}");
    }
}
static void PesquisarIdade(List<Pessoa> pessoas)
{
    Console.WriteLine("Digite a idade que deseja pesquisar: ");
    int idade;
    while (!int.TryParse(Console.ReadLine().Trim(), out idade))
    {
        Console.WriteLine("Idade inválida, por favor insira um número inteiro:");
    }

    var pessoasEncontradas = pessoas.Where(p => p.Idade == idade).ToList();

    if (pessoasEncontradas.Count > 0)
    {
        Console.WriteLine("Pessoas com a idade informada:");
        foreach (var pessoa in pessoasEncontradas)
        {
            Console.WriteLine($"Nome: {pessoa.Nome}, Idade: {pessoa.Idade}, Email: {pessoa.Email}");
        }
    }
    else
    {
        Console.WriteLine("Nenhuma pessoa encontrada com a idade informada.");

    }

}

}

1 resposta

Olá, job.

Tudo bem?

Seu projeto está muito bem estruturado e a implementação dos métodos para adicionar, visualizar, pesquisar e salvar pessoas está clara e funcional. O uso do JsonSerializer para manipulação dos dados em JSON e a inclusão de tratamento de exceções são ótimas práticas.

Continue assim, com essa dedicação. Parabéns!

Qualquer dúvida conta com a gente. Bons estudos.