using System; using System.Collections.Generic; using System.Linq; using System.Security.AccessControl; using System.Text; using System.Threading.Tasks; namespace ConsoleApp3 { internal class Program { static Participante[] listaParticipantes = { }; static void Main(string[] args) { Menu(); Console.ReadKey(); } static void Menu() { int opcao; Console.WriteLine("Bem vindo ao Diretório Participantes"); Console.WriteLine("Selecione uma opção: \n"); Console.WriteLine("1- Novo Cadastro"); Console.WriteLine("2- Listar Cadastros"); Console.WriteLine("3- Listar Cadastros com Responsavéis"); Console.WriteLine("4- Consultar por ID"); Console.WriteLine("5- Consultar por Nickname"); Console.WriteLine("6- Sair"); opcao = int.Parse(Console.ReadLine()); switch (opcao) { case 1: { NovoCadastro(); break; } case 2: { ListarCadastros(); break; } case 3: { ListarCadastrosComResponsaveis(); break; } case 4: { EncontrarPorID(); break; } case 5: { PesquisaNick(); break; } case 6: { System.Environment.Exit(0); break; } default: { Console.WriteLine("Opção Inválida!"); Menu(); break; } } } static void NovoCadastro() { Participante novoParticipante = new Participante(); Console.WriteLine("\nOlá, seja bem vindo!\nAntes de iniciarmos o seu cadastro, como você gostaria de ser chamado?"); novoParticipante.Nickname = Console.ReadLine(); Console.WriteLine("Seja bem vindo, " + novoParticipante.Nickname + "\n"); Console.WriteLine(novoParticipante.Nickname + ", preencha os dados corretamente para validar sua inscrição."); Console.WriteLine("\nNome Completo:"); novoParticipante.Nome = Console.ReadLine(); Console.WriteLine("\nQual é a sua idade?"); novoParticipante.Idade = int.Parse(Console.ReadLine()); if (novoParticipante.Idade > 18) { Console.WriteLine("Você está elegivel para o cadastro, vamos continuar com o processo!\n"); Console.WriteLine("Qual o seu CPF? (Digite apenas números, sem pontos e barra.)"); novoParticipante.Cpf = Console.ReadLine(); } else { Console.WriteLine("\nPor ser menor de idade, é necessário o cadastro de um responsável por você.\n"); Console.WriteLine("\nNome do Responsável:"); novoParticipante.NomeResponsavel = Console.ReadLine(); Console.WriteLine("\nIdade do Responsável:"); novoParticipante.idadeResponsavel = int.Parse(Console.ReadLine()); if (novoParticipante.idadeResponsavel < 18) { Console.WriteLine("\nInfelizmente, não podemos continuar devido ao seu responsável ser de menor.\n"); Menu(); } else { Console.WriteLine("\nCPF do Resposável: (Digite apenas números, sem pontos e barra.)"); novoParticipante.CpfResponsavel = Console.ReadLine(); Console.WriteLine("\nTudo certo, agora vamos continuar com o seu cadastro.\n"); } } Console.WriteLine("\nVamos agora conferir o local onde você mora!"); Console.WriteLine("Qual é o seu endereço?"); novoParticipante.Endereco = Console.ReadLine(); Console.WriteLine("Digite seu Bairro:"); novoParticipante.Bairro = Console.ReadLine(); Console.WriteLine("Digite seu Estado:"); novoParticipante.Estado = Console.ReadLine(); Console.WriteLine("\nMuito bem, vamos agora conferir os seus dados!"); Console.WriteLine("Nickname: " + novoParticipante.Nickname); Console.WriteLine("Nome Completo: " + novoParticipante.Nome); Console.WriteLine("Idade: " + novoParticipante.Idade); if (novoParticipante.Idade < 18) { Console.WriteLine("Nome do Responsável: " + novoParticipante.NomeResponsavel); Console.WriteLine("Idade do Responsável: " + novoParticipante.idadeResponsavel); Console.WriteLine("CPF do Responsável: " + novoParticipante.CpfResponsavel); } Console.WriteLine("Endereço: " + novoParticipante.Endereco); Console.WriteLine("Bairro: " + novoParticipante.Bairro); Console.WriteLine("Estado: " + novoParticipante.Estado); Console.WriteLine("Confirma que os dados estão corretos? S / N"); bool confirma = (string.Equals(Console.ReadLine(), "s", StringComparison.OrdinalIgnoreCase) ? true : false); if (confirma) { listaParticipantes = listaParticipantes.Append(novoParticipante).ToArray(); Console.WriteLine(""); Menu(); } else { NovoCadastro(); } } static void ListarCadastros() { foreach (Participante participante in listaParticipantes) { Console.WriteLine("ID: " + Array.IndexOf(listaParticipantes, participante)); Console.WriteLine("Nickname: " + participante.Nickname); Console.WriteLine("Nome Completo: " + participante.Nome); Console.WriteLine("Idade: " + participante.Idade); Console.WriteLine("Endereço: " + participante.Endereco); Console.WriteLine("Bairro: " + participante.Bairro); Console.WriteLine("Estado: " + participante.Estado); Console.WriteLine(""); } if (listaParticipantes.Length < 1) { Console.WriteLine("\nLista vazia."); } Console.WriteLine(""); Menu(); } static void ListarCadastrosComResponsaveis() { foreach (Participante participante in listaParticipantes.Where(p => !(p.NomeResponsavel is null)).ToArray()) { Console.WriteLine("ID: " + Array.IndexOf(listaParticipantes, participante)); Console.WriteLine("Nickname: " + participante.Nickname); Console.WriteLine("Nome Completo: " + participante.Nome); Console.WriteLine("Idade: " + participante.Idade); Console.WriteLine("Endereço: " + participante.Endereco); Console.WriteLine("Bairro: " + participante.Bairro); Console.WriteLine("Estado: " + participante.Estado); Console.WriteLine("Nome do Responsável: " + participante.NomeResponsavel); Console.WriteLine("Idade do Responsável: " + participante.idadeResponsavel); Console.WriteLine("CPF do Responsável: " + participante.CpfResponsavel); Console.WriteLine(""); } if (listaParticipantes.Length < 1) { Console.WriteLine("\nLista vazia."); } Console.WriteLine(""); Menu(); } static void EncontrarPorID() { foreach (Participante participante in listaParticipantes) { Console.WriteLine("ID: " + Array.IndexOf(listaParticipantes, participante)); Console.WriteLine("Nickname: " + participante.Nickname); Console.WriteLine(""); } Console.WriteLine("Qual ID você deseja consultar?"); int id = int.Parse(Console.ReadLine()); Console.WriteLine("Nickname: " + listaParticipantes[id].Nickname); Console.WriteLine("Nome Completo: " + listaParticipantes[id].Nome); Console.WriteLine("Idade: " + listaParticipantes[id].Idade); Console.WriteLine("Endereço: " + listaParticipantes[id].Endereco); Console.WriteLine("Bairro: " + listaParticipantes[id].Bairro); Console.WriteLine("Estado: " + listaParticipantes[id].Estado); Console.WriteLine(""); if (listaParticipantes.Length < 1) { Console.WriteLine("\nLista vazia."); } Console.WriteLine(""); Menu(); } static void PesquisaNick() { Console.WriteLine("Qual nickname você gostaria de consultar?"); var pesquisa = Console.ReadLine(); var resultados = listaParticipantes.Where(p => string.Equals(pesquisa, p.Nickname, StringComparison.OrdinalIgnoreCase)).ToArray(); foreach (Participante participante in resultados) { Console.WriteLine("Nickname: " + participante.Nickname); Console.WriteLine("Nome Completo: " + participante.Nome); Console.WriteLine("Idade: " + participante.Idade); Console.WriteLine("Endereço: " + participante.Endereco); Console.WriteLine("Bairro: " + participante.Bairro); Console.WriteLine("Estado: " + participante.Estado); Console.WriteLine(""); } if (resultados.Length < 1) { Console.WriteLine("\nResultado não encontrado."); } Console.WriteLine(""); Menu(); } } }