LevelOS-Core/BLL/BLLFuncionarios.cs

119 lines
3.0 KiB
C#

using System;
using DALL;
using MLL;
namespace BLL
{
public class BLLFuncionarios
{
private DALFuncionarios dal;
public BLLFuncionarios(string conexao)
{
dal = new DALFuncionarios(conexao);
}
#region INSERT
public bool Inserir(ModeloFuncionarios f)
{
string erro = Validar(f);
if (!string.IsNullOrEmpty(erro))
throw new Exception(erro);
return dal.Inserir(f);
}
#endregion
#region UPDATE
public bool Alterar(ModeloFuncionarios f)
{
if (f.ID_FUNCIONARIO <= 0)
throw new Exception("Funcionário inválido.");
string erro = Validar(f);
if (!string.IsNullOrEmpty(erro))
throw new Exception(erro);
return dal.Alterar(f);
}
#endregion
#region DELETE
public bool Excluir(int id)
{
if (id <= 0)
throw new Exception("ID inválido.");
return dal.Excluir(id);
}
#endregion
public ModeloFuncionarios CarregarModeloFuncionario(int id)
{
return dal.Carregar(id);
}//CarregarModeloFuncionario
public List<ModeloFuncionarios> Listar()
{
return dal.Listar();
}//List<ModeloFuncionarios>
public List<ModeloFuncionarios> LocalizarOtimizado(ModeloFuncionarios filtro)
{
return dal.LocalizarOtimizado(filtro);
}//List<ModeloFuncionarios> LocalizarOtimizado(ModeloFuncionarios filtro)
public string ObterNomePorCodigo(string codigo)
{
return dal.ObterNomePorCodigo(codigo);
}//ObterNomePorCodigo
public ModeloFuncionarios CarregarPorCodigo(string codigo)
{
if (string.IsNullOrWhiteSpace(codigo))
return null;
return dal.CarregarPorCodigo(codigo);
}//CarregarPorCodigo
#region VALIDAÇÃO
private string Validar(ModeloFuncionarios f)
{
if (f == null)
return "Objeto funcionário inválido.";
if (string.IsNullOrWhiteSpace(f.NOME))
return "Nome é obrigatório.";
// 🔥 LIMPA CPF antes de validar
f.CPF = LimparNumeros(f.CPF);
if (!string.IsNullOrEmpty(f.CPF))
{
if (f.CPF.Length != 11)
return "CPF deve conter 11 dígitos.";
}
return null;
}
private string LimparNumeros(string texto)
{
if (string.IsNullOrWhiteSpace(texto))
return texto;
return new string(texto.Where(char.IsDigit).ToArray());
}
#endregion
#region AUX
private bool SomenteNumeros(string texto)
{
foreach (char c in texto)
{
if (!char.IsDigit(c))
return false;
}
return true;
}
#endregion
}
}