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.");
}
}
}