Decidi fazer um sistema básico de login e cadastro de usuário, deixarei o código logo abaixo:
class Usuarios
{
private List<Usuario> _usuariosRegistrados = [];
public IReadOnlyList<Usuario> listaDeUsuarios => _usuariosRegistrados;
public void AdicionarUsuario(Usuario usuario)
{
_usuariosRegistrados.Add(usuario);
}
public void RemoverUsuario(Usuario usuario)
{
_usuariosRegistrados.Remove(usuario);
}
public Usuario BuscarUsuarioPorNome(string nome)
{
return _usuariosRegistrados.FirstOrDefault(u => u.Nome == nome)!;
}
public Usuario BuscarUsuarioPorEmail(string email)
{
return _usuariosRegistrados.FirstOrDefault(u => u.Email == email)!;
}
public bool ExisteEmail(string email)
{
return _usuariosRegistrados.Any(u => u.Email == email);
}
public bool BuscarUsuario(string nome)
{
return _usuariosRegistrados.Any(u => u.Nome == nome);
}
}
class Usuario
{
public Usuario(string nome, string email, string senha)
{
Nome = nome;
Email = email;
Senha = senha;
}
public string Nome { get; }
public string Email { get; }
public string Senha { get; private set; }
public void AlterarSenha(string novaSenha)
{
Senha = novaSenha;
}
}
class Validacao
{
public (bool valido, string stringValida) ValidarString(string entrada)
{
bool valido = !string.IsNullOrWhiteSpace(entrada);
return (valido, entrada);
}
public bool ConfirmarSenha(string novaSenha, string RepetirSenha)
{
return novaSenha == RepetirSenha;
}
public (bool valido, int valor) ConversaoInt(string entrada)
{
bool valido = int.TryParse(entrada, out int resultado);
return (valido, resultado);
}
public (bool valido, string stringValida) VerificarDadosNoRepositorio(Validacao validar, Usuarios usuarios, string dadoBuscado)
{
string entrada = Console.ReadLine()!;
var entradaValida = validar.ValidarString(entrada);
bool validarInformacao;
if (dadoBuscado == "nome")
{
validarInformacao = usuarios.BuscarUsuario(entradaValida.stringValida);
}
else
{
validarInformacao = usuarios.ExisteEmail(entradaValida.stringValida);
}
return (validarInformacao, entradaValida.stringValida);
}
}