示例#1
0
 private void Validar(ItemDicionario item, object valor)
 {
     ValidarObrigatorio(item, valor);
     ValidarTamanhoMinimo(item, valor);
     ValidarTamanhoMaximo(item, valor);
     ValidarValidacoesPersonalizadas(item, valor);
 }
        private ICollection <object> ConsultarFilhosAtuais(TObjeto model, ItemDicionario campo)
        {
            var expressao = ExpressionHelper.CriarExpressaoDeConsultaDaPropriedade <TObjeto>(campo.Propriedade);
            var buscador  = (Buscador <TObjeto>)_contexto.Repositorio <TObjeto>().Buscar;

            return(buscador.ConsultarPropriedade(model, expressao).Cast <object>().ToList());
        }
 private string ConsultarAliasDoCampo(ItemDicionario item)
 {
     if (string.IsNullOrEmpty(item.Alias))
     {
         return(string.Empty);
     }
     return("as[" + item.Alias + "]");
 }
示例#4
0
 private void ValidarValidacoesPersonalizadas(ItemDicionario item, object valor)
 {
     if (item.Validacoes == null)
     {
         return;
     }
     foreach (var validador in item.Validacoes)
     {
         validador.Validar(item.Propriedade, valor);
     }
 }
示例#5
0
        private static void CriarColuna(ItemDicionario itemDicionario, DataTable tabela)
        {
            var coluna = tabela.Columns.Add(itemDicionario.Nome, itemDicionario.TipoLocal);

            coluna.Caption     = itemDicionario.AliasOuNome;
            coluna.AllowDBNull = !itemDicionario.Obrigatorio;
            if (itemDicionario.TamanhoMaximo > 0)
            {
                coluna.MaxLength = itemDicionario.TamanhoMaximo;
            }
        }
示例#6
0
        private void ValidarTamanhoMaximo(ItemDicionario item, object valor)
        {
            if (item.TamanhoMaximo < 1)
            {
                return;
            }
            var erro = ((valor != null) && (valor != DBNull.Value) && (valor.GetType() == typeof(string)) && (((string)valor).Length > item.TamanhoMaximo));

            if (erro)
            {
                throw new CampoPossuiTamanhoMaximoDePeenchimentoException(item.AliasOuNome, item.TamanhoMaximo);
            }
        }
        private void ValidarObrigatorio(ItemDicionario item, object valor)
        {
            if (!item.Obrigatorio)
            {
                return;
            }
            var erro = (valor == null) || (valor == DBNull.Value);

            if (erro)
            {
                throw new CampoPossuiPreenchimentoObrigatorioException(item.AliasOuNome);
            }
        }
示例#8
0
        private static void SincronizarParametro(IDbCommand comando, ItemDicionario itemDicionario, object valor)
        {
            var nomeParametro  = string.Concat("@p", itemDicionario.Id);
            var parametro      = (SqlParameter)comando.Parameters[nomeParametro];
            var valorParametro = (valor ?? DBNull.Value);

            if ((itemDicionario.TipoLocal.IsEnum) && (valor != null) && (valorParametro != DBNull.Value))
            {
                valorParametro = (itemDicionario.TipoBanco == DbType.String)
                                        ? ConverterEnumEmString(itemDicionario.Propriedade, valorParametro)
                                        : valor.GetHashCode();
            }
            parametro.Value = valorParametro;
        }
        private static void CriarColuna(ItemDicionario itemDicionario, DataTable tabela)
        {
            var coluna = tabela.Columns.Add(itemDicionario.Nome, itemDicionario.TipoLocal);

            coluna.Caption     = itemDicionario.AliasOuNome;
            coluna.AllowDBNull = !itemDicionario.Obrigatorio;
            if ((coluna.DataType == typeof(string)) && (itemDicionario.TamanhoMaximo > 0))
            {
                coluna.MaxLength = itemDicionario.TamanhoMaximo;
            }
            if (itemDicionario.OpcaoGeracao == Entities.Anotacoes.Incremento.Identity)
            {
                coluna.AutoIncrement     = true;
                coluna.AutoIncrementSeed = 1;
                coluna.AutoIncrementStep = 1;
            }
        }
示例#10
0
        private void ValidarObrigatorio(ItemDicionario item, object valor)
        {
            if (!item.Obrigatorio)
            {
                return;
            }
            var erro = (valor == null) || (valor == DBNull.Value);

            if ((!erro) && (valor.GetType() == typeof(string)))
            {
                erro = string.IsNullOrWhiteSpace((string)valor);
            }
            if (erro)
            {
                throw new CampoPossuiPreenchimentoObrigatorioException(item.AliasOuNome);
            }
        }
        private IEnumerable <Action <ItemDicionario, object> > ConsultarValidadores(ItemDicionario item)
        {
            yield return(ValidarObrigatorio);

            yield return(ValidarTamanhoMaximo);

            if (item.Validacoes == null)
            {
                yield break;
            }

            foreach (var validador in item.Validacoes)
            {
                var val = validador;
                Action <ItemDicionario, object> validacao = (i, v) => val.Validar(v);
                yield return(validacao);
            }
        }
示例#12
0
        public IEnumerable <string> Valido(ItemDicionario item, object valor)
        {
            var validadores = ConsultarValidadores(item);

            foreach (var validador in validadores)
            {
                string mensagem = null;
                try
                {
                    validador(item, valor);
                }
                catch (Exception ex)
                {
                    mensagem = ex.Message;
                }
                if (mensagem != null)
                {
                    yield return(mensagem);
                }
            }
        }
示例#13
0
 private object ConsultarValorDoRegistro(DataRow registro, ItemDicionario item)
 {
     return(registro[item.Nome]);
 }
示例#14
0
 private object ConsultarValorDoRegistro <TObjeto>(TObjeto registro, ItemDicionario item)
 {
     return(item.Propriedade.GetValue(registro, null));
 }
示例#15
0
 private bool CampoFilho(ItemDicionario item)
 {
     return((item.Ligacao != null) && (item.Ligacao.Tipo == TiposRelacionamento.Descendente));
 }
示例#16
0
 private static object ConsultarValorDaPropriedadeDoObjeto <TObjeto>(TObjeto model, ItemDicionario campo) where TObjeto : IEntidade
 {
     return((model == null)
                         ? null
                         : campo.Propriedade.GetValue(model, null));
 }