private void ValidarItensMistoDoDicionarioNaoMapeados(Dicionario dicionario)
        {
            dicionario.ConsultarPorCampo("EstadoEntidade").Should().BeNull();
            dicionario.ConsultarPorPropriedade("EstadoEntidade").Should().BeNull();

            dicionario.ConsultarPorCampo("AliasFilhos").Should().NotBeNull();
            dicionario.ConsultarPorPropriedade("AliasFilhos").Should().NotBeNull();
        }
        private void ValidarItensMistoDoDicionarioComValidadores(Dicionario dicionario)
        {
            var campoCodigo = dicionario.ConsultarPorPropriedade("AliasCodigo");

            campoCodigo.Should().NotBeNull();
            campoCodigo.Validacoes.Should().BeNull();

            var campoNome = dicionario.ConsultarPorPropriedade("AliasNome");

            campoNome.Should().NotBeNull();
            campoNome.Validacoes.Should().NotBeNull();
            campoNome.Validacoes.Count.Should().Be(2);
        }
        public void SeConsultarPorUmaPropriedadeInexistenteDeveRetornarNulo()
        {
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));

            dicionario.ConsultarPorPropriedade("NomeDaPropriedadeInexistenteNoObjeto")
            .Should().BeNull();
        }
Exemplo n.º 4
0
 public void AplicarChaveAscendente(object[] chaveAscendente, object objeto)
 {
     for (var n = 0; n < ChaveEstrangeira.Length; n++)
     {
         var campo = Dicionario.ConsultarPorPropriedade(ChaveEstrangeira[n]);
         campo.Propriedade.SetValue(objeto, chaveAscendente[n], null);
     }
 }
Exemplo n.º 5
0
        private IList <object> CarregarRelacionamentoVinculado(TiposRelacionamento tipo, Configurador <TObjeto> configurador, PropertyInfo propriedade)
        {
            var item = _dicionario.ConsultarPorPropriedade(propriedade.Name);

            configurador.Preparar();
            var scriptPadrao = configurador.ConsultarScript();

            if (item.Ligacao == null)
            {
                throw new NaoFoiPossivelEncontrarALigacaoEntreOsCamposException();
            }
            var scriptPersonalizado = (tipo == TiposRelacionamento.Ascendente)
                                ? _relacionamentoBuilder.CriarScriptConsultaRelacionamentoAscendente(item.Ligacao, scriptPadrao)
                                : _relacionamentoBuilder.CriarScriptConsultaRelacionamentoDescendente(item.Ligacao, scriptPadrao, _dicionario.ConsultarCamposChave());

            configurador.PersonalizarScript(scriptPersonalizado);

            IDataReader reader;

            try
            {
                reader = _comando.ConsultarRegistro(configurador);
            }
            catch (Exception ex)
            {
                throw new NaoFoiPossivelConsultarRelacionamentoVinculadoDevidoAoSeguinteErroException(_dicionario.AliasOuNome, tipo.ToString(), item.Ligacao.Dicionario.AliasOuNome, ex.Message);
            }

            var tipoModel = (tipo == TiposRelacionamento.Ascendente)
                                ? propriedade.PropertyType
                                : propriedade.PropertyType.GetGenericArguments()[0];

            try
            {
                return(Conversor.ConverterDataReaderParaObjeto(tipoModel, reader).Cast <object>().ToList());
            }
            finally
            {
                reader.Close();
            }
        }
Exemplo n.º 6
0
        public bool PossuiChaveAscendente(object[] chaveAscendente, object objeto)
        {
            var n = 0;

            for (n = 0; n < ChaveEstrangeira.Length; n++)
            {
                var campo = Dicionario.ConsultarPorPropriedade(ChaveEstrangeira[n]);
                var valor = campo.Propriedade.GetValue(objeto, null);
                if (!Equals(chaveAscendente[n], valor))
                {
                    return(false);
                }
            }
            return(n > 0);
        }
        public void SeSincronizarValoresDePropriedadesEnumSemDefaultValueOEnumQueDeveSerSincronizado()
        {
            var comando    = new SqlCommand();
            var dicionario = new Dicionario(typeof(NetoDoObjetoDeTestes));

            CommandBuilder.DefinirParametrosParaTodosOsCampos(dicionario, comando);

            var objeto = new NetoDoObjetoDeTestes()
            {
                CodigoFilho = 123,
                NomeNeto    = "ABC",
                Letra       = EnumDeStrings.SemOpcao
            };

            CommandBuilder.SincronizarParametrosDeTodosOsCampos(dicionario, comando, objeto);

            var campo = dicionario.ConsultarPorPropriedade("Letra");

            comando.Parameters["@p" + campo.Id.ToString()].Value
            .Should()
            .Be("SemOpcao");
        }