Skip to content

Instantly share code, notes, and snippets.

@drmcarvalho
Created May 28, 2016 17:36
Show Gist options
  • Save drmcarvalho/c76381b733862e4daf3189203a0c25d7 to your computer and use it in GitHub Desktop.
Save drmcarvalho/c76381b733862e4daf3189203a0c25d7 to your computer and use it in GitHub Desktop.
Classe responsavel por generalizar validações em comun.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MODEL;
using System.Text.RegularExpressions;
namespace BLL
{
public class ValidadorRegraGlobal
{
/*Implementação dos métodos.*/
public List<string> ValidarCampos(MAluno aluno, bool alteracao)
{
var errosValidacao = new List<string>();
var msgCampoObrigatorio = "{0} é obrigatório";
var msgLimiteCaracteres = "O campo {0} excedeu o limite de caracteres.";
CampoObrigatorio("Nome", aluno.Nome, msgCampoObrigatorio, errosValidacao);
CampoObrigatorio("Telefone", aluno.Telefone, msgCampoObrigatorio, errosValidacao);
LimiteCaracteres("Nome", aluno.Nome, 50, msgLimiteCaracteres, errosValidacao);
LimiteCaracteres("Endereço", aluno.Endereco, 200, msgLimiteCaracteres, errosValidacao);
LimiteCaracteres("Email", aluno.Email, 50, msgLimiteCaracteres, errosValidacao);
LimiteCaracteres("Observacao", aluno.Observacao, 300, msgLimiteCaracteres, errosValidacao);
EmailValido("Email", aluno.Email, "E-Mail inválido.", errosValidacao);
if (alteracao)
IdValido("id_aluno", aluno.IdAluno, "ID inválido.", errosValidacao);
return errosValidacao;
}
public List<string> ValidarCampos(MVoluntario voluntario, bool alteracao)
{
var errosValidacao = new List<string>();
var msgCampoObrigatorio = "{0} é obrigatório";
var msgLimiteCaracteres = "O campo {0} excedeu o limite de caracteres.";
CampoObrigatorio("Nome", voluntario.Nome, msgCampoObrigatorio, errosValidacao);
CampoObrigatorio("Curso", voluntario.Curso, msgCampoObrigatorio, errosValidacao);
LimiteCaracteres("Nome", voluntario.Nome, 50, msgLimiteCaracteres, errosValidacao);
LimiteCaracteres("Curso", voluntario.Curso, 50, msgLimiteCaracteres, errosValidacao);
LimiteCaracteres("Observação", voluntario.Observacao, 300, msgLimiteCaracteres, errosValidacao);
LimiteCaracteres("Email", voluntario.Email, 50, msgLimiteCaracteres, errosValidacao);
EmailValido("Email", voluntario.Email, "E-Mail inválido", errosValidacao);
if (alteracao)
IdValido("id_voluntario", voluntario.IdVoluntario, "ID inválido.", errosValidacao);
return errosValidacao;
}
public List<string> ValidarCampos(MResponsavel responsavel, bool alteracao)
{
var errosValidacao = new List<string>();
var msgCampoObrigatorio = "{0} é obrigatório";
var msgLimiteCaracteres = "O campo {0} excedeu o limite de caracteres.";
CampoObrigatorio("Responsavel", responsavel.Nome, msgCampoObrigatorio, errosValidacao);
LimiteCaracteres("Responsavel", responsavel.Nome, 50, msgLimiteCaracteres, errosValidacao);
if (alteracao)
IdValido("id_responsavel", responsavel.IdResponsavel, "ID inválido.", errosValidacao);
return errosValidacao;
}
public List<string> ValidarCampos(MEncontro encontro, bool alteracao, string palestra, bool temVoluntario)
{
var errosValidacao = new List<string>();
var msgCampoObrigatorio = "{0} é obrigatório";
var msgLimiteCaracteres = "O campo {0} excedeu o limite de caracteres.";
CampoObrigatorio("Atividade", encontro.AtividadeRealizada, msgCampoObrigatorio, errosValidacao);
CampoObrigatorio("Hora de Inicio", encontro.HoraInicio.Replace("_", "").Replace(":", "").Replace(" ", ""), msgCampoObrigatorio, errosValidacao);
CampoObrigatorio("Hora de terminio", encontro.HoraTerminio.Replace("_", "").Replace(":", "").Replace(" ", ""), msgCampoObrigatorio, errosValidacao);
LimiteCaracteres("Atividade", encontro.AtividadeRealizada, 100, msgLimiteCaracteres, errosValidacao);
LimiteCaracteres("Observação", encontro.Observacao, 200, msgLimiteCaracteres, errosValidacao);
HoraValida("Hora de inicio", encontro.HoraInicio, "Hora de inicio inválida", errosValidacao);
HoraValida("Hora de terminio", encontro.HoraTerminio, "Hora de terminio inválida.", errosValidacao);
HorasIguais("Hora", encontro.HoraInicio, encontro.HoraTerminio, "Horas são iguais.", errosValidacao);
IdValido("id_responsavel", encontro.IdResponsavel, "ID Inválido.", errosValidacao);
if (temVoluntario)
IdValido("Voluntário", encontro.IdVoluntario, "Voluntário inválido.", errosValidacao);
if (palestra.Equals("Sim"))
{
CampoObrigatorio("Palestrate", encontro.Palestrante, msgCampoObrigatorio, errosValidacao);
CampoObrigatorio("Tema da Palestra", encontro.TemaPalestra, msgCampoObrigatorio, errosValidacao);
LimiteCaracteres("Palestrante", encontro.Palestrante, 50, msgLimiteCaracteres, errosValidacao);
LimiteCaracteres("Tema da Palestra", encontro.TemaPalestra, 100, msgLimiteCaracteres, errosValidacao);
}
if (alteracao)
IdValido("id_encontro", encontro.IdEncontro, "ID inválido", errosValidacao);
return errosValidacao;
}
public List<string> ValidarCampos(MListaPresenca listachamada, bool alteracao)
{
var errosValidacao = new List<string>();
IdValido("Aluno", listachamada.IdAluno, "Aluno invalido", errosValidacao);
if (alteracao)
IdValido("id_chamada", listachamada.IdChamada, "ID inválido", errosValidacao);
return errosValidacao;
}
public List<string> ValidarCampos(MConteudoAplicadoAula conteudo, bool alteracao)
{
var errosValidacao = new List<string>();
var msgCampoObrigatorio = "{0} é obrigatório";
var msgLimiteCaracteres = "O campo {0} excedeu o limite de caracteres.";
CampoObrigatorio("Conteudo", conteudo.DescricaoConteudo, msgCampoObrigatorio, errosValidacao);
LimiteCaracteres("Conteudo", conteudo.DescricaoConteudo, 100, msgLimiteCaracteres, errosValidacao);
IdValido("Voluntario", conteudo.IdVoluntario, "Voluntario inválido.", errosValidacao);
IdValido("Aluno", conteudo.IdAluno, "Aluno inválido.", errosValidacao);
if (alteracao)
IdValido("id_conteudo_aula", conteudo.IdConteudoAula, "ID Inválido", errosValidacao);
return errosValidacao;
}
public List<string> ValidarCampos(MParticipanteEncontro participante)
{
var errosValidacao = new List<string>();
IdValido("Encontro", participante.Id_encontro, "Encontro inválido", errosValidacao);
IdValido("Aluno", participante.Id_aluno, "Aluno inválido", errosValidacao);
return errosValidacao;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*Abaixo esta os métodos de validação global.*/
private void CampoObrigatorio(string nomeCampo, string valor, string mensagemPattern, List<string> errosValidacao)
{
if (String.IsNullOrEmpty(valor))
errosValidacao.Add(string.Format(mensagemPattern, nomeCampo));
}
private void IdValido(string nomeCampo, int id, string mensagemPattern, List<string> errosValidacao)
{
if (id <= 0)
errosValidacao.Add(string.Format(mensagemPattern, nomeCampo));
}
private void LimiteCaracteres(string nomeCampo, string valor, int limiteCaracteres, string mensagemPattern, List<string> errosValidacao)
{
if (valor.Length > limiteCaracteres)
errosValidacao.Add(string.Format(mensagemPattern, nomeCampo));
}
private void EmailValido(string nomeCampo, string email, string mensagemPattern, List<string> errosValidacao)
{
bool emailValido = Regex.IsMatch(email, @"^(?("")("".+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" +
@"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,6}))$");
if (emailValido == false)
errosValidacao.Add(string.Format(mensagemPattern, nomeCampo));
}
private void HoraValida(string nomeCampo, string hora, string mensagemPattern, List<string> errosValidacao)
{
Regex expressao = new Regex(@"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$");
bool temNumero = Regex.IsMatch(hora, @"\d");
if (temNumero)
if (!expressao.IsMatch(hora))
errosValidacao.Add(string.Format(mensagemPattern, nomeCampo));
}
private void HorasIguais(string nomeCampo, string horaInicial, string horaFinal, string mensagemPattern, List<string> errosValidacao)
{
if (horaInicial.Equals(horaFinal))
errosValidacao.Add(string.Format(mensagemPattern, nomeCampo));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment