Created
May 28, 2016 17:36
-
-
Save drmcarvalho/c76381b733862e4daf3189203a0c25d7 to your computer and use it in GitHub Desktop.
Classe responsavel por generalizar validações em comun.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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