public void SeConsultarAForeingKeyDaInversePropertyDaPropriedadPaiDeveRetornarNulo()
        {
            var propriedade = typeof(FilhoDoObjetoDeTestes).GetProperty("Pai");

            DataAnnotationHelper.ConsultarForeignKeyDaInverseProperty(propriedade, typeof(ICollection <FilhoDoObjetoDeTestes>))
            .Should().BeNull();
        }
        public void SeConsultarOTamanhoMinimoDeUmaPropriedadeQueNaoPossuiOAtributoDeveTrazerZero()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Codigo");

            DataAnnotationHelper.ConsultarTamanhoMinimo(propriedade)
            .Should().Be(0);
        }
        private static Relacionamento CriarLigacaoEntreModels(PropertyInfo propriedade, PropertyInfo propriedadeReferenciada)
        {
            var tipoPropriedade = propriedade.PropertyType;

            if (!propriedade.GetGetMethod().IsVirtual)
            {
                return(null);
            }
            var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(propriedadeReferenciada);

            if (!string.IsNullOrEmpty(chaveEstrangeira))
            {
                return(CriarLigacaoAscendenteEntreModels(propriedadeReferenciada, chaveEstrangeira));
            }
            if (typeof(IEntidade).IsAssignableFrom(tipoPropriedade))
            {
                GerarErroDeLigacao(propriedade);
            }
            var inverse = DataAnnotationHelper.ConsultarForeignKeyDaInverseProperty(propriedadeReferenciada, tipoPropriedade);

            if (!string.IsNullOrEmpty(inverse))
            {
                return(GerarScriptCarregamentoDescendente(propriedadeReferenciada, inverse, tipoPropriedade));
            }
            if ((tipoPropriedade.IsGenericType) && (tipoPropriedade.GetGenericTypeDefinition() == typeof(ICollection <>)))
            {
                GerarErroDeLigacao(propriedade);
            }
            return(null);
        }
Exemplo n.º 4
0
 public ITabelaMapaDicionario <TModel, TTabela> Tabela <TTabela>() where TTabela : class, IEntidade
 {
     _tabela      = _tabela ?? (_tabela = new TabelaMapaDicionario <TModel, TTabela>());
     TipoDaTabela = typeof(TTabela);
     NomeDaTabela = DataAnnotationHelper.ConsultarNomeDaTabela(TipoDaTabela);
     return((ITabelaMapaDicionario <TModel, TTabela>)_tabela);
 }
        public void SeConsultarAOpcaoDeGeracaoDaPropriedadeCodigoDeveTrazerValorCorreto()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Codigo");

            DataAnnotationHelper.ConsultarOpcaoGeracao(propriedade)
            .Should().Be(Incremento.Identity);
        }
        public void SeConsultarAForeingKeyDaPropriedadPaiDeveRetornarCodigoPai()
        {
            var propriedade = typeof(FilhoDoObjetoDeTestes).GetProperty("Pai");

            DataAnnotationHelper.ConsultarForeignKey(propriedade)
            .Should().Be("IdPai");
        }
        public void SeConsultarAForeingKeyDaPropriedadeFilhosDeveRetornarNull()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Filhos");

            DataAnnotationHelper.ConsultarForeignKey(propriedade)
            .Should().BeNull();
        }
        public void SeConsultarOValorPadraoDaPropriedadeEstadoObjetoDeveRetornarFalso()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Logico");
            var valor       = (bool)DataAnnotationHelper.ConsultarValorPadrao(propriedade);

            valor.Should().BeTrue();
        }
        public void SeConsultarOValorPadraoDaPropriedadeFilhosDeveRetornarNull()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Filhos");

            DataAnnotationHelper.ConsultarValorPadrao(propriedade)
            .Should().BeNull();
        }
        public void SeConsultarSeAPropriedadeFilhosEstaMapeadaDeveRetornarFalso()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Filhos");

            DataAnnotationHelper.Mapeado(propriedade)
            .Should().BeFalse();
        }
        public void SeConsultarSeAPropriedadeCodigoEstaMapeadaDeveRetornarVerdadeiro()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Codigo");

            DataAnnotationHelper.Mapeado(propriedade)
            .Should().BeTrue();
        }
        public void SeConsultarAOpcaoDeGeracaoDeUmapropriedadeQueNaoPossuiOAtributoDeveTrazerNone()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Nome");

            DataAnnotationHelper.ConsultarOpcaoGeracao(propriedade)
            .Should().Be(Incremento.Nenhum);
        }
        public void SeConsultarAForeingKeyDaInversePropertyDeUmaPropriedadeMapeadaConfiguradaDeveRetornarONomeDaForeingKey()
        {
            var propriedade = typeof(ObjetoMapeadoDeTestes).GetProperty("MapeadoComFilhos");

            DataAnnotationHelper.ConsultarForeignKeyDaInverseProperty(propriedade, typeof(ICollection <FilhoMapeadoDoObjetoMapeadoDeTestes>))
            .Should().Be("IdPai");
        }
Exemplo n.º 14
0
        public static void ApplyBindingSettings <TEntity>(BaseEdit edit, LayoutControl layoutControl)
        {
            var memberInfo = edit.DataBindings["EditValue"].BindingMemberInfo;

            if (DataAnnotationHelper.IsRequired <TEntity>(memberInfo.BindingMember))
            {
                if (layoutControl != null)
                {
                    var itemForEdit = layoutControl.GetItemByControl(edit);
                    itemForEdit.AllowHtmlStringInCaption = true;
                    itemForEdit.Text = itemForEdit.Text + " <color=red>*</color>";
                }
            }
            if (edit is TextEdit)
            {
                if (DataAnnotationHelper.IsPhone <TEntity>(memberInfo.BindingMember))
                {
                    ((TextEdit)edit).Properties.Mask.MaskType = XtraEditors.Mask.MaskType.Simple;
                    ((TextEdit)edit).Properties.Mask.EditMask = "(999) 000-0000";
                    ((TextEdit)edit).Properties.Mask.UseMaskAsDisplayFormat = true;
                }
                if (DataAnnotationHelper.IsZipcode <TEntity>(memberInfo.BindingMember))
                {
                    ((TextEdit)edit).Properties.Mask.MaskType = XtraEditors.Mask.MaskType.Simple;
                    ((TextEdit)edit).Properties.Mask.EditMask = "00000";
                    ((TextEdit)edit).Properties.Mask.UseMaskAsDisplayFormat = true;
                }
            }
        }
        public void SeCriarScriptConsultaRelacionamentoDescendenteDeveGerarUmScriptSqlCorretamente()
        {
            var queryBuilder  = new QueryBuilder();
            var dicionarioPai = new Dicionario(typeof(ObjetoDeTestes));

            queryBuilder.DefinirTabela(dicionarioPai.Nome);
            queryBuilder.AdicionarCondicao("Codigo", (int)Operadores.Igual, 1);
            var scriptConsultaDoPai = queryBuilder.GerarScript(dicionarioPai);

            var dicionarioFilho  = new Dicionario(typeof(FilhoDoObjetoDeTestes));
            var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionarioFilho.ConsultarPorCampo("Pai").Propriedade);

            var relacionamentoBuilder = new RelacionamentoBuilder();
            var relacionamento        = new Relacionamento(TiposRelacionamento.Descendente, dicionarioFilho, chaveEstrangeira);

            relacionamentoBuilder.CriarScriptConsultaRelacionamentoDescendente(relacionamento, scriptConsultaDoPai, dicionarioPai.ConsultarCamposChave())
            .Should()
            .Be("with[d]as(" +
                "select[Codigo],[CodigoNulo],[Nome],[Duplo],[DuploNulo],[Decimal]," +
                "[DecimalNulo],[Logico],[DataHora],[DataHoraNulo] " +
                "from[ObjetoVirtual]" +
                "where([Codigo]=@_p0) " +
                ")" +
                "select[CodigoFilho],[NomeFilho],[CodigoPai]" +
                "from[ObjetoVirtualFilho][t]" +
                "where(exists(" +
                "select top 1 1 " +
                "from[d]" +
                "where(t.[CodigoPai]=d.[Codigo])))");
        }
        public void SeConsultarOTamanhoMinimoDeUmaPropriedadeDeveTrazerValorCorreto()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Nome");

            DataAnnotationHelper.ConsultarTamanhoMinimo(propriedade)
            .Should().Be(5);
        }
        public void SeVerificarSeAPropriedadeCodigoNuloEhObrigatoriaDeveTrazerFalso()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("CodigoNulo");

            DataAnnotationHelper.Obrigatorio(propriedade)
            .Should().BeFalse();
        }
        public void SeVerificarSeAPropriedadeNomeEhChavePrimariaDeveTrazerFalso()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Nome");

            DataAnnotationHelper.ChavePrimaria(propriedade)
            .Should().BeFalse();
        }
        public void SeVerificarSeAPropriedadeCodigoEhChavePrimariaDeveTrazerVerdadeiro()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Codigo");

            DataAnnotationHelper.ChavePrimaria(propriedade)
            .Should().BeTrue();
        }
        public void SeConsultarPorUmaPropriedadeQueNaoPossuiOAtributoColumnAttributoDeveTrazerNulo()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Filhos");
            var coluna      = DataAnnotationHelper.ConsultarColuna(propriedade);

            coluna.Should().BeNull();
        }
Exemplo n.º 21
0
        public bool IsValidModel(object objectToValidate)
        {
            var errorResult = DataAnnotationHelper.GetValidationResult(objectToValidate);

            this.ValidationResults.AddRange(errorResult);

            return(this.IsValid());
        }
        public void SeQuestionarPelaPropriedadeRelacinoadaDeUmObjetoQueNaoPossuiUmaDeterminadaChaveDeveRetornarFalso()
        {
            var filho            = new FilhoDoObjetoDeTestes();
            var dicionario       = new Dicionario(typeof(FilhoDoObjetoDeTestes));
            var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade);
            var relacionamento   = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira);

            relacionamento.PossuiChaveAscendente(new object[] { 123 }, filho)
            .Should().BeFalse();
        }
        public void SeConsultarPorUmaPropriedadeComAtributoColumnAttributoDeveTrazerUmValorValido()
        {
            var propriedade = typeof(ObjetoDeTestes).GetProperty("Codigo");
            var coluna      = DataAnnotationHelper.ConsultarColuna(propriedade);

            coluna.Should().NotBeNull();
            coluna.Nome.Should().BeNull();
            coluna.Ordem.Should().Be(0);
            coluna.NomeDoTipo.Should().Be("int");
        }
        public void SeConsultarAForeingKeyDaInversePropertyDeUmaPropriedadeInvalidaDeveRetornarNulo()
        {
            var propriedadeNaoGenerica = typeof(ObjetoDeTestes).GetProperty("DataHora");

            DataAnnotationHelper.ConsultarForeignKeyDaInverseProperty(propriedadeNaoGenerica, typeof(DateTime))
            .Should().BeNull();

            var propriedadeGenericaNaoCollection = typeof(ObjetoDeTestes).GetProperty("CodigoNulo");

            DataAnnotationHelper.ConsultarForeignKeyDaInverseProperty(propriedadeGenericaNaoCollection, typeof(int?))
            .Should().BeNull();
        }
        public void SeDefinirUmaChaveAscendenteDeUmCampoRelacionadoDevePreencherObjetoCorretamente()
        {
            var filho            = new FilhoDoObjetoDeTestes();
            var dicionario       = new Dicionario(typeof(FilhoDoObjetoDeTestes));
            var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade);
            var relacionamento   = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira);

            relacionamento.AplicarChaveAscendente(new object[] { 123 }, filho);

            filho.CodigoPai
            .Should().Be(123);
        }
        public void SeQuestionarPelaPropriedadeRelacionadaComDeterminadoValorPreenchidoDeveRetornarVerdadeiro()
        {
            var filho = new FilhoDoObjetoDeTestes()
            {
                CodigoPai = 123
            };

            var dicionario       = new Dicionario(typeof(FilhoDoObjetoDeTestes));
            var chaveEstrangeira = DataAnnotationHelper.ConsultarForeignKey(dicionario.ConsultarPorCampo("Pai").Propriedade);
            var relacionamento   = new Relacionamento(TiposRelacionamento.Ascendente, dicionario, chaveEstrangeira);

            relacionamento.PossuiChaveAscendente(new object[] { 123 }, filho)
            .Should().BeTrue();
        }
        public static ItemDicionario CriarItemDicionario(int id, PropertyInfo propriedade, PropertyInfo propriedadeReferenciada = null)
        {
            if (propriedadeReferenciada == null)
            {
                propriedadeReferenciada = propriedade;
            }

            var coluna = DataAnnotationHelper.ConsultarColuna(propriedadeReferenciada);

            var alias = propriedade.Name;
            var nome  = ((coluna == null) || (string.IsNullOrEmpty(coluna.Nome))) ? propriedadeReferenciada.Name : coluna.Nome;

            if (string.Equals(nome, alias))
            {
                alias = null;
            }

            var nullable = TipoColunaNullable(propriedade);

            var campo = new ItemDicionario(
                id: id,
                alias: alias,
                nome: nome,
                tipoBanco: (coluna == null) ? DbType.Object : ConverterSqlDbTypeParaDbType(EnumHelper.FromString <SqlDbType>(coluna.NomeDoTipo ?? "Variant")),
                tipoLocal: (nullable) ? ConsultarTipoDaColunaNullable(propriedade) : propriedade.PropertyType,
                chave: DataAnnotationHelper.ChavePrimaria(propriedadeReferenciada),
                obrigatorio: DataAnnotationHelper.Obrigatorio(propriedadeReferenciada),
                tamanhoMinimo: DataAnnotationHelper.ConsultarTamanhoMinimo(propriedadeReferenciada),
                tamanhoMaximo: DataAnnotationHelper.ConsultarTamanhoMaximo(propriedadeReferenciada),
                ordem: (coluna == null) ? 0 : coluna.Ordem,
                opcaoGeracao: DataAnnotationHelper.ConsultarOpcaoGeracao(propriedadeReferenciada),
                valorPadrao: DataAnnotationHelper.ConsultarValorPadrao(propriedadeReferenciada),
                mapeado: DataAnnotationHelper.Mapeado(propriedade),
                propriedade: propriedade,
                validacoes: ConsultarValidacoes(propriedade, propriedadeReferenciada),
                ligacao: CriarLigacaoEntreModels(propriedade, propriedadeReferenciada)
                );

            if (nullable && campo.Obrigatorio)
            {
                throw new CampoNullableInvalidoException();
            }

            return(campo);
        }
Exemplo n.º 28
0
 public Dicionario(Type tipo)
 {
     if (!typeof(Entidade).IsAssignableFrom(tipo))
     {
         throw new NaoSeraPossivelCriarUmDicionarioDeUmObjetoQueNaoHerdeObjetoBancoException();
     }
     _tipo = tipo;
     _nome = DataAnnotationHelper.ConsultarNomeDaTabela(tipo);
     Alias = tipo.Name;
     _possuiReferencial = ObjetoPossuiOutroObjetoReferenciado(tipo);
     _mapa = (_possuiReferencial)
                         ? MapaItemDicionarioBuilder.CriarMapaBuilder(tipo)
                         : null;
     if (_mapa != null)
     {
         Alias = tipo.Name;
         _nome = _mapa.NomeDaTabela;
     }
     if (string.Equals(Nome, Alias) || string.IsNullOrEmpty(Alias))
     {
         Alias = null;
     }
     _possuiCamposFilhos = false;
 }
 public void SeConsultarONomeDaTabelaQueNaoPossuiOAtributoDeveTrazerOProprioNomeDoObjeto()
 {
     DataAnnotationHelper.ConsultarNomeDaTabela(typeof(ObjetoSemHerancaCorreta))
     .Should().Be("ObjetoSemHerancaCorreta");
 }
Exemplo n.º 30
0
 public IConfiguracaoProcedure <TObjeto> DefinirProcedure()
 {
     _nomeProcedure = DataAnnotationHelper.ConsultarNomeDaTabela(typeof(TObjeto));
     return(this);
 }