csharp-class-portuguese-con.../ConsoleApp3/Program.cs

254 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();
}
}
}