public void SeConsultarOsCamposRelacionadosDeveRetornarOsCamposEsperados()
        {
            var dicionario = new Dicionario(typeof(ObjetoDeTestes));

            dicionario.PossuiCamposFilho
            .Should().BeTrue();

            var campos = dicionario.ConsultarCamposFilho().GetEnumerator();

            campos.MoveNext().Should().BeTrue();
            campos.Current.Should().NotBeNull();
            campos.Current.Nome.Should().Be("Filhos");

            campos.MoveNext().Should().BeFalse();
        }
 private void AdicionarRegistro(Dicionario dicionario, DataTable tabela, object registro)
 {
     tabela.Rows.Add(DataTableBuilder.ConverterItemEmDataRow(tabela, registro));
     if (dicionario.PossuiCamposFilho)
     {
         var chave = dicionario.ConsultarValoresDaChave(registro);
         foreach (var item in dicionario.ConsultarCamposFilho())
         {
             var valores = item.Propriedade.GetValue(registro, null);
             if (valores == null)
             {
                 continue;
             }
             AdicionarRegistros(item.Ligacao.Dicionario.Tipo, (IEnumerable)valores,
                                (r) => item.Ligacao.AplicarChaveAscendente(chave, r));
         }
     }
 }
Beispiel #3
0
        private void SincronizarChaveDoPaiComOsFilhos(TObjeto registro)
        {
            if (!((registro.EstadoEntidade == EstadosEntidade.Novo) || (_dicionario.AutoIncremento != OpcoesAutoIncremento.Nenhum) || (_dicionario.PossuiCamposFilho)))
            {
                return;
            }

            var chave = _dicionario.ConsultarValoresDaChave(registro);

            foreach (var filho in _dicionario.ConsultarCamposFilho())
            {
                var itens = (ICollection)filho.Propriedade.GetValue(registro, null);
                if (itens == null)
                {
                    continue;
                }
                foreach (var item in itens)
                {
                    filho.Ligacao.AplicarChaveAscendente(chave, item);
                }
            }
        }