/// <summary> /// Método que carrega os campos /// </summary> public void CarregaCampos(Model.MD_Tabela tabela, string filtro = "") { Util.CL_Files.WriteOnTheLog("UC_ControleTabelas().CarregaCampos()", Util.Global.TipoLog.DETALHADO); this.lockChange = true; this.dgv_campos.Columns.Clear(); this.dgv_campos.Rows.Clear(); this.dgv_campos.Columns.Add("Nome", "Nome"); this.dgv_campos.Columns.Add("Descrição", "Descrição"); this.dgv_campos.Columns.Add("Primary Key", "Primary Key"); this.dgv_campos.Columns.Add("NotNull", "NotNull"); this.dgv_campos.Columns.Add("Default", "Default"); this.dgv_campos.Columns.Add("Checked", "Checked"); this.dgv_campos.Columns.Add("Precisão", "Precisão"); this.dgv_campos.Columns.Add("Foreing key", "Foreing key"); this.dgv_campos.Columns.Add("Domínio", "Domínio"); this.dgv_campos.Columns.Add("Tamanho", "Tamanho"); this.dgv_campos.Columns.Add("Unique", "Unique"); if (string.IsNullOrEmpty(filtro)) { this.listaCampos = Model.MD_Campos.RetornaCamposTabela(tabela.DAO.Codigo, projeto.DAO.Codigo); } else { this.listaCampos = Model.MD_Campos.RetornaCamposTabela(filtro, tabela.DAO.Codigo, projeto.DAO.Codigo); } this.listaCampos.ForEach(t => CarregaCampos(t)); this.lockChange = false; }
/// <summary> /// Método que gera a classe da tabela passada por parâmetro /// </summary> /// <param name="tabela">Tabela a se gerar a classe</param> /// <param name="mensagem">mensagem caso tenha erro</param> /// <returns>True - sucesso; False - erro</returns> public bool GerarClasse(Model.MD_Tabela tabela, ref string mensagem) { Util.CL_Files.WriteOnTheLog("FO_Principal.GerarClasse()", Util.Global.TipoLog.DETALHADO); DAO.MDN_Table table = Regras.ClassCreater.MontaTable(tabela); return(Regras.ClassCreater.Create(table, ref mensagem)); }
/// <summary> /// Construtor principal da classe /// </summary> /// <param name="projeto">Projeto para pegar as tabelas</param> public FO_GerarScripts(Model.MD_Projeto projeto, Model.MD_Tabela tabela) { this.projeto = projeto; this.tabela = tabela; InitializeComponent(); ckb_gerarArquivo.Checked = true; ckb_gerarArquivo.Visible = this.btn_info_gerarArquivo.Visible = false; }
/// <summary> /// Método que carrega os campos no objeto /// </summary> /// <param name="tabela"></param> private void CarregaCampos(ref Model.MD_Tabela tabela) { Util.CL_Files.WriteOnTheLog("UC_CadastroTabela.CarregaCampos()", Util.Global.TipoLog.DETALHADO); tabela.DAO.Nome = this.tbx_nomeTabela.Text; tabela.DAO.Descricao = this.tbx_descricao.Text; tabela.DAO.Notas = this.tbx_notas.Text; }
/// <summary> /// Método que carrega as tabelas /// </summary> /// <param name="tabela"></param> public void CarregaTabelas(Model.MD_Tabela tabela) { Util.CL_Files.WriteOnTheLog("UC_ControleTabelas().CarregaTabelas()", Util.Global.TipoLog.DETALHADO); List <string> list = new List <string>(); list.Add(tabela.DAO.Nome); list.Add(tabela.DAO.Descricao); this.dgv_tabelas.Rows.Add(list.ToArray()); }
/// <summary> /// Construtor principal da classe /// </summary> /// <param name="tarefa">Tarefa a ser efetuada pela tela</param> /// <param name="campo">Campo a ser visualizado/editado/excluído</param> /// <param name="principal">Tela principal para controle</param> public UC_CadastroCampos(Util.Enumerator.Tarefa tarefa, Model.MD_Campos campo, Model.MD_Tabela tabela, FO_Principal principal, UC_ControleTabelas controleTabelas) { Util.CL_Files.WriteOnTheLog("UC_CadastroCampos()", Util.Global.TipoLog.DETALHADO); this.tarefa = tarefa; this.campoCorrente = campo; this.tabela = tabela; this.principal = principal; this.controleTabelas = controleTabelas; this.InitializeComponent(); this.InicializaUserControl(); }
/// <summary> /// Método que cria o create da tabela /// </summary> /// <param name="table">Tabela a ser preenchida</param> /// <param name="builder">Builder para criação do comando</param> private static void CriarCreate(Model.MD_Tabela table, ref StringBuilder builder) { try { DAO.MDN_Table tabela = MontaNucleo(table); builder = tabela.CreateTable(false); } catch (Exception e) { Util.CL_Files.WriteOnTheLog("Erro: " + e.Message, Util.Global.TipoLog.SIMPLES); } }
/// <summary> /// Método que retorna a lista dos campos da tabela /// </summary> /// <param name="table"></param> /// <returns></returns> private static List <DAO.MDN_Campo> CamposTabela(Model.MD_Tabela table) { List <DAO.MDN_Campo> campos = new List <DAO.MDN_Campo>(); foreach (Model.MD_Campos campoModel in table.CamposDaTabela()) { DAO.MDN_Campo campo = new DAO.MDN_Campo(campoModel.DAO.Nome, campoModel.DAO.NotNull, RetornaTipoCampo(campoModel), campoModel.DAO.Default, campoModel.DAO.PrimaryKey, campoModel.DAO.Unique, campoModel.DAO.Tamanho, int.Parse(campoModel.DAO.Precisao.ToString())); campos.Add(campo); } return(campos); }
/// <summary> /// Evento lançado no clique do botão de incluir campo /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_incluirCampo_Click(object sender, System.EventArgs e) { Util.CL_Files.WriteOnTheLog("UC_ControleTabelas().btn_incluirCampo_Click()", Util.Global.TipoLog.DETALHADO); if (this.dgv_tabelas.SelectedRows.Count == 0) { Message.MensagemAlerta("Selecione uma tabela"); } else { Model.MD_Tabela tabela = this.listaTabelas[this.dgv_tabelas.SelectedRows[0].Index]; this.principal.AbrirCadastroCampo(tabela, Util.Enumerator.Tarefa.INCLUIR, this); } }
/// <summary> /// Evento lançado no clique do botão de abrir para visualizar /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_visualizarTabela_Click(object sender, System.EventArgs e) { Util.CL_Files.WriteOnTheLog("UC_ControleTabelas().btn_visualizarTabela_Click()", Util.Global.TipoLog.DETALHADO); if (this.dgv_tabelas.SelectedRows.Count == 0) { Message.MensagemAlerta("Selecione alguma tabela"); } else { Model.MD_Tabela tabela = this.listaTabelas[this.dgv_tabelas.SelectedRows[0].Index]; this.principal.AbrirCadastroTabela(projeto, Util.Enumerator.Tarefa.VISUALIZAR, this, tabela); } }
/// <summary> /// Método que monta o data table /// </summary> /// <param name="tabela">Tabela para montar a tabela do núcleo</param> /// <returns>Objeto da tabela do núcleo</returns> public static MDN_Table MontaTable(Model.MD_Tabela tabela) { Util.CL_Files.WriteOnTheLog("ClassCreater.MontaTable()", Util.Global.TipoLog.DETALHADO); MDN_Table table = new MDN_Table(tabela.DAO.Nome); foreach (Model.MD_Campos campo in tabela.CamposDaTabela()) { table.Fields_Table.Add(new MDN_Campo(campo.DAO.Nome, campo.DAO.NotNull, campo.TipoNucleo(), campo.DAO.Default, campo.DAO.PrimaryKey, campo.DAO.Unique, campo.DAO.Tamanho, int.Parse(campo.DAO.Precisao.ToString()))); } return(table); }
/// <summary> /// Construtor principal da classe /// </summary> /// <param name="tarefa">tarefa a ser realizada na tela</param> /// <param name="tabela">Instancia da classe de tabela</param> /// <param name="principal">Tela principal para controle do visual</param> public UC_CadastroTabela(Util.Enumerator.Tarefa tarefa, Model.MD_Tabela tabela, Model.MD_Projeto projeto, FO_Principal principal, UC_ControleTabelas controleTabelas = null) { Util.CL_Files.WriteOnTheLog("UC_CadastroTabela()", Util.Global.TipoLog.DETALHADO); this.InitializeComponent(); this.projeto = projeto; this.controleTabelas = controleTabelas; this.tabelaCorrente = new Model.MD_Tabela(tabela.DAO.Codigo, projeto.DAO.Codigo); this.principal = principal; this.tarefa = tarefa; this.gpb_cadastroGeral.Text = "Cadastro de tabela - Projeto " + this.projeto.DAO.Nome; this.InicializaUserControl(); }
/// <summary> /// Método que confirma o formulário /// </summary> private void Confirmar() { Util.CL_Files.WriteOnTheLog("FO_Relacionamento.Confirmar()", Util.Global.TipoLog.DETALHADO); if (this.tarefa == Util.Enumerator.Tarefa.VISUALIZAR) { this.tarefa = Util.Enumerator.Tarefa.EDITAR; this.InicializaForm(); } else { if (this.VerificaCampos()) { Model.MD_Tabela tabelaDestino = new Model.MD_Tabela(int.Parse(this.cmb_tabela.SelectedValue.ToString()), this.campoOrigem.DAO.Projeto.Codigo); this.campoDestino = new Model.MD_Campos(int.Parse(this.cmb_campos.SelectedValue.ToString()), tabelaDestino.DAO.Codigo, tabelaDestino.DAO.Projeto.Codigo); Model.MD_Relacao relacao = (this.tarefa == Util.Enumerator.Tarefa.EDITAR ? this.relacao : new Model.MD_Relacao(DataBase.Connection.GetIncrement("RELACAO"), this.campoOrigem.DAO.Projeto, this.campoOrigem.DAO.Tabela, tabelaDestino.DAO, this.campoOrigem.DAO, this.campoDestino.DAO)); this.relacao = relacao; this.PreencheRelacao(ref relacao); bool worked = false; if (this.tarefa == Util.Enumerator.Tarefa.EDITAR) { worked = relacao.DAO.Update(); } else { worked = relacao.DAO.Insert(); } if (worked) { Message.MensagemSucesso("Cadastro efetuado com sucesso!"); this.tarefa = Util.Enumerator.Tarefa.VISUALIZAR; this.principal.CarregaTreeViewAutomaticamente(); this.InicializaForm(); } else { Message.MensagemErro("Erro ao cadastrar!"); } } } }
/// <summary> /// Método que trata as tabelas /// </summary> /// <param name="projeto">Projeto ao qual a tabela pertence</param> /// <param name="tabelas">Tabelas a serem importadas para o projeto</param> private static void TratarColunas(Model.MD_Projeto projeto, ref List <Model.Campo> campos, ref BarraDeCarregamento barra) { Util.CL_Files.WriteOnTheLog("Importador.TratarColunas()", Util.Global.TipoLog.DETALHADO); foreach (Model.Campo c in campos) { barra.AvancaBarra(1); bool existe = false; int campoCodigo = CodigoColuna(c, projeto.DAO.Codigo, ref existe); Model.Tabela t = new Model.Tabela(); t.nome = c.Tabela; bool x = true; Model.MD_Tabela tabela = new Model.MD_Tabela(CodigoTabela(t, projeto.DAO.Codigo, ref x), projeto.DAO.Codigo); Model.MD_Campos campo = new Model.MD_Campos(campoCodigo, tabela.DAO.Codigo, tabela.DAO.Projeto.Codigo); campo.DAO.Nome = c.Name_Field; campo.DAO.Default = c.ValueDefault; campo.DAO.NotNull = c.NotNull; campo.DAO.Precisao = c.Precision; campo.DAO.PrimaryKey = c.PrimaryKey; campo.DAO.Projeto = projeto.DAO; campo.DAO.Tamanho = c.Size; campo.DAO.TipoCampo = Model.MD_TipoCampo.RetornaTipoCampo(c.Type).DAO; campo.DAO.Unique = c.Unique; campo.DAO.Comentario = c.Comments; if (existe) { campo.DAO.Update(); } else { campo.DAO.Insert(); } campo = null; tabela = null; } }
/// <summary> /// Método que faz a inserção /// </summary> private void Inserir() { Util.CL_Files.WriteOnTheLog("UC_CadastroTabela.Inserir()", Util.Global.TipoLog.DETALHADO); if (this.tarefa == Util.Enumerator.Tarefa.VISUALIZAR) { this.tarefa = Util.Enumerator.Tarefa.EDITAR; this.InicializaUserControl(); } else { if (this.ValidaCampos()) { Model.MD_Tabela tabela = (tarefa == Util.Enumerator.Tarefa.EDITAR ? this.tabelaCorrente : new Model.MD_Tabela(DataBase.Connection.GetIncrement("TABELA"), this.projeto.DAO.Codigo)); this.CarregaCampos(ref tabela); if (Model.MD_Tabela.ValidaExisteTabelaProjeto(tabela.DAO.Nome, tabela.DAO.Projeto.Codigo)) { Message.MensagemAlerta("A tabela " + tabela.DAO.Nome + " já existe no projeto!"); return; } if (this.Insere(tabela)) { if (Message.MensagemConfirmaçãoYesNo("Deseja cadastrar um campo para a tabela?") == DialogResult.Yes) { principal.AbrirCadastroCampo(tabela, Util.Enumerator.Tarefa.INCLUIR, this.controleTabelas); } this.principal.CarregaTreeViewAutomaticamente(); this.tabelaCorrente = tabela; this.tarefa = Util.Enumerator.Tarefa.VISUALIZAR; this.InicializaUserControl(); } } } }
/// <summary> /// Método que trata as tabelas /// </summary> /// <param name="projeto">Projeto ao qual a tabela pertence</param> /// <param name="tabelas">Tabelas a serem importadas para o projeto</param> private static void TratarTabelas(Model.MD_Projeto projeto, ref List <Model.Tabela> tabelas, ref BarraDeCarregamento barra) { Util.CL_Files.WriteOnTheLog("Importador.TratarTabelas()", Util.Global.TipoLog.DETALHADO); foreach (Model.Tabela t in tabelas) { barra.AvancaBarra(1); bool existe = false; int tableCodigo = CodigoTabela(t, projeto.DAO.Codigo, ref existe); Model.MD_Tabela tabela = new Model.MD_Tabela(tableCodigo, projeto.DAO.Codigo); tabela.DAO.Nome = t.nome; if (existe) { tabela.DAO.Update(); } else { tabela.DAO.Insert(); } tabela = null; } }
/// <summary> /// Método que insere o objeto /// </summary> /// <param name="tab">Classe a ser inserida</param> private bool Insere(Model.MD_Tabela tab) { Util.CL_Files.WriteOnTheLog("UC_CadastroTabela.Insere()", Util.Global.TipoLog.DETALHADO); bool retorno = true; if (this.tarefa == Util.Enumerator.Tarefa.INCLUIR) { if (tab.DAO.Insert()) { if (controleTabelas != null && tarefa == Util.Enumerator.Tarefa.INCLUIR) { this.controleTabelas.AdicionaTabela(tab); } Message.MensagemSucesso("Tabela incluída com sucesso!"); } else { Message.MensagemErro("Erro ao incluir!"); retorno = false; } } else { if (tab.DAO.Update()) { Message.MensagemSucesso("Tabela alterada com sucesso!"); } else { Message.MensagemErro("Erro ao alterar!"); retorno = false; } } return(retorno); }
/// <summary> /// Evento lançado no botão de remover tabela /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_removerTabela_Click(object sender, System.EventArgs e) { Util.CL_Files.WriteOnTheLog("UC_ControleTabelas().btn_removerTabela_Click()", Util.Global.TipoLog.DETALHADO); if (this.dgv_tabelas.SelectedRows.Count == 0) { Message.MensagemAlerta("Selecione alguma tabela"); } else { int indexTabela = this.dgv_tabelas.SelectedRows[0].Index; Model.MD_Tabela tabela = this.listaTabelas[indexTabela]; if (Message.MensagemConfirmaçãoYesNo("Deseja realmente excluir a tabela " + tabela.DAO.Nome + "?") == DialogResult.Yes) { if (tabela.DAO.Delete()) { this.dgv_tabelas.Rows.RemoveAt(indexTabela); this.listaTabelas.RemoveAt(indexTabela); this.dgv_campos.Rows.Clear(); this.dgv_campos.Columns.Clear(); Message.MensagemSucesso("Excluído com sucesso"); } } } }
/// <summary> /// Método que trata os relacionamentos /// </summary> /// <param name="projeto">Projeto ao qual o relacionamento pertence</param> /// <param name="relacionamentos">Relacionamentos a serem importadas para o projeto</param> private static void TratarRelacionamento(Model.MD_Projeto projeto, ref List <Model.Relacionamento> relacionamentos, ref BarraDeCarregamento barra) { Util.CL_Files.WriteOnTheLog("Importador.TratarRelacionamento()", Util.Global.TipoLog.DETALHADO); foreach (Model.Relacionamento r in relacionamentos) { barra.AvancaBarra(1); bool existe = false; int rCodigo = CodigoRelacionamento(r, projeto.DAO.Codigo, ref existe); Model.Tabela tabelaOrigemDesc = new Model.Tabela(); tabelaOrigemDesc.nome = r.tabelaOrigem; Model.Tabela tabelaDestinoDesc = new Model.Tabela(); tabelaDestinoDesc.nome = r.tabelaDestino; Model.Campo campoOrigemDesc = new Model.Campo(); campoOrigemDesc.Name_Field = r.campoOrigem; campoOrigemDesc.Tabela = tabelaOrigemDesc.nome; Model.Campo campoDestinoDesc = new Model.Campo(); campoDestinoDesc.Name_Field = r.campoDestino; campoDestinoDesc.Tabela = tabelaDestinoDesc.nome; bool x = true; Model.MD_Tabela tabelaOrigem = new Model.MD_Tabela(CodigoTabela(tabelaOrigemDesc, projeto.DAO.Codigo, ref x), projeto.DAO.Codigo); if (!x) { tabelaOrigem.DAO.Insert(); } Model.MD_Tabela tabelaDestino = new Model.MD_Tabela(CodigoTabela(tabelaDestinoDesc, projeto.DAO.Codigo, ref x), projeto.DAO.Codigo); if (!x) { tabelaDestino.DAO.Insert(); } Model.MD_Campos campoOrigem = new Model.MD_Campos(CodigoColuna(campoOrigemDesc, projeto.DAO.Codigo, ref x), tabelaOrigem.DAO.Codigo, tabelaOrigem.DAO.Projeto.Codigo); if (!x) { campoOrigem.DAO.Insert(); } Model.MD_Campos campoDestino = new Model.MD_Campos(CodigoColuna(campoDestinoDesc, projeto.DAO.Codigo, ref x), tabelaDestino.DAO.Codigo, tabelaDestino.DAO.Projeto.Codigo); if (!x) { campoDestino.DAO.Insert(); } Model.MD_Relacao relacao = new Model.MD_Relacao(rCodigo, projeto.DAO, tabelaOrigem.DAO, tabelaDestino.DAO, campoOrigem.DAO, campoDestino.DAO); relacao.DAO.NomeForeingKey = r.constraintName; if (existe) { relacao.DAO.Update(); } else { relacao.DAO.Insert(); } tabelaOrigemDesc = null; tabelaDestinoDesc = null; campoOrigemDesc = null; campoDestinoDesc = null; relacao = null; tabelaOrigem = null; tabelaDestino = null; campoOrigem = null; campoDestino = null; } }
/// <summary> /// Método que adiciona tabela na lista e na tabela da tela /// </summary> /// <param name="table"></param> public void AdicionaTabela(Model.MD_Tabela table) { Util.CL_Files.WriteOnTheLog("UC_ControleTabelas().AdicionaTabela()", Util.Global.TipoLog.DETALHADO); this.listaTabelas.Add(table); CarregaTabelas(table); }
/// <summary> /// Método que abre janela de cadastro de tabela /// </summary> /// <param name="project"></param> public void AbrirCadastroTabela(Model.MD_Projeto project, Tarefa tarefa, Visao.UC_ControleTabelas controletabelas = null, Model.MD_Tabela table = null) { Util.CL_Files.WriteOnTheLog("FO_Principal.AbrirCadastroTabela()", Util.Global.TipoLog.DETALHADO); this.AbreJanela(new Visao.UC_CadastroTabela(tarefa, table == null ? new Model.MD_Tabela(-1, project.DAO.Codigo) : table, project, this, controletabelas), "Cadastro de Tabela", Telas.CADASTRO_TABELAS); }
/// <summary> /// Método que abre a janela de cadastro de campo /// </summary> /// <param name="campo">Classe de instância do campo</param> /// <param name="tarefa"></param> public void AbrirCadastroCampo(Model.MD_Tabela tabela, Tarefa tarefa, UC_ControleTabelas controleTabelas = null, Model.MD_Campos campo = null) { Util.CL_Files.WriteOnTheLog("FO_Principal.AbrirCadastroCampo()", Util.Global.TipoLog.DETALHADO); this.AbreJanela(new Visao.UC_CadastroCampos(tarefa, campo, tabela, this, controleTabelas), "Cadastro de Campos", Telas.CADASTRO_CAMPOS); }
/// <summary> /// Método que gera os scripts de banco /// </summary> /// <param name="projeto">Projeto para capturar as tabelas</param> public void GerarScriptBD(Model.MD_Projeto projeto, Model.MD_Tabela tabela) { FO_GerarScripts form = new FO_GerarScripts(projeto, tabela); form.Show(); }
/// <summary> /// Método que monta a tabela do núcleo a partir da tabela cadastrada /// </summary> /// <param name="table">Tabela a ser criada</param> /// <returns>Tabela do núcleo</returns> private static DAO.MDN_Table MontaNucleo(Model.MD_Tabela table) { DAO.MDN_Table tabela = new DAO.MDN_Table(table.DAO.Nome); tabela.Fields_Table = CamposTabela(table); return(tabela); }