public void SeConsultarPorUmaPropriedadeQueNaoPossuiOAtributoColumnAttributoDeveTrazerNulo() { var propriedade = typeof(ObjetoDeTestes).GetProperty("Filhos"); var coluna = DataAnnotationHelper.ConsultarColuna(propriedade); coluna.Should().BeNull(); }
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 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); }