253 lines
10 KiB
C#
253 lines
10 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|