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)); } } }
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); } } }