private async Task <List <TabelaEstrangeira> > RetornarListaTabelaEstrangeira(string tabela) { List <TabelaEstrangeira> itens = null; var repositorio = new SqlClient.Repositorio(IdServidor); string chavePrimaria = ""; string descricao = ""; try { chavePrimaria = (await repositorio.RetornarColunasChavePrimariaTabelaAsync(tabela, Schema, Database))[0].Nome; descricao = await repositorio.SelecionarDescricaoChaveEstrangeiraConfiguracaoTabelaAsync(Database, Schema, Nome, chavePrimaria); if (string.IsNullOrEmpty(descricao)) { descricao = (await repositorio.RetornarColunasAsync(Database, Schema, tabela)).FirstOrDefault().Nome; } itens = await repositorio.SelectTabelaAsync(chavePrimaria, descricao, tabela, Schema, Database); } catch (Exception) { throw; } return(itens); }
public async Task <string> CarregarAsync(string tabela, string schema, string database, int idServidor, bool carregarFks = true) { Nome = tabela; Schema = schema; Database = database; IdServidor = idServidor; Valores = new List <object>(); string retorno = string.Empty; SqlClient.Repositorio repositorio = new SqlClient.Repositorio(IdServidor); if (string.IsNullOrEmpty(Database)) { throw new ArgumentException("Propriedade Database é obrigatória."); } if (string.IsNullOrEmpty(Nome)) { throw new ArgumentException("Propriedade Nome da tabela é obrigatória."); } if (string.IsNullOrEmpty(Schema)) { Schema = "DBO"; } try { Valores = null; ValoresMultilinha = null; ConsultaDados = null; pkAlteracao = string.Empty; Colunas = await repositorio.RetornarColunasAsync(Database, Schema, Nome); TodasColunas = new List <Coluna>(); TodasColunas.AddRange(Colunas); CarregarNomesInput(); TemChavePrimaria = Colunas.Where(p => p.IsChavePrimaria).FirstOrDefault() != null; TemChaveEstrangeira = Colunas.Where(p => p.IsChaveEstrangeira).FirstOrDefault() != null; camposExibir = await repositorio.SelecionarColunasVisiveisAsync(Database, Schema, Nome); ChavesPrimarias = await repositorio.RetornarColunasChavePrimariaTabelaAsync(Nome, Schema, Database); RemoverColunasIgnoradas(); QuantidadeCampos = Colunas.Count; if (carregarFks) { await CarregarColunasChaveEstrangeiraAsync(); } IsIdentity = Colunas.FirstOrDefault().IsIdentity; await CarregarColunasFiltro(); } catch (Exception ex) { retorno = ex.Message; } return(retorno); }