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); }
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"); }
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(); }
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); }
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"); }
public IConfiguracaoProcedure <TObjeto> DefinirProcedure() { _nomeProcedure = DataAnnotationHelper.ConsultarNomeDaTabela(typeof(TObjeto)); return(this); }