/// <summary> /// Carrega os campos do objeto alvo /// </summary> /// <param name="nomeObjeto">nome do objeto</param> /// <param name="tipo">tipo do objeto (tabela,view,procedure)</param> private void CarregaCamposObjeto(string nomeObjeto, TipoObjetoBanco.ETipoObjeto tipo) { try { if (ObjetosSelecionado.Key == null) { var colunasObjeto = new List<DadosColunas>(); switch (tipo) { case TipoObjetoBanco.ETipoObjeto.Tabela: colunasObjeto = Gerador.MapeamentoTabela.ListAllFieldsFromTable(BancoSelecionado, nomeObjeto, DadosLogin); break; case TipoObjetoBanco.ETipoObjeto.View: colunasObjeto = Gerador.MapeamentoView.ListAllFieldsFromViews(BancoSelecionado, nomeObjeto, DadosLogin); break; case TipoObjetoBanco.ETipoObjeto.Procedure: Parametros = Gerador.MapeamentoProcedure.ListaAllStoredProceduresParameters(BancoSelecionado, DadosLogin, nomeObjeto); if (Parametros.Count > 0) { var frm = new frmParametros { Parametros = Parametros }; if (frm.ShowDialog(this) == DialogResult.Yes) { Parametros = frm.Parametros; } frm.Dispose(); } if (MessageBox.Show(string.Format("Algumas procedures podem desencadear uma sequencia de insert's, update's e delete's.\nExecute apenas procedures que você conheça o funcionamento e que retornem dados.\nDeseja executar a procedure '{0}' ?", nomeObjeto), "ATENÇÃO", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { colunasObjeto = Gerador.MapeamentoProcedure.ListAllFieldsFromStoredProcedure(BancoSelecionado, nomeObjeto, Parametros, DadosLogin); } break; case TipoObjetoBanco.ETipoObjeto.Query: colunasObjeto = Colunas; break; default: throw new ArgumentOutOfRangeException("tipo", "Tipo inválido"); } ObjetosSelecionado = tipo == TipoObjetoBanco.ETipoObjeto.Query ? new KeyValuePair<TipoObjetoBanco, List<DadosColunas>>(new TipoObjetoBanco(nomeObjeto, tipo.ToString(), Parametros, Consulta), colunasObjeto) : new KeyValuePair<TipoObjetoBanco, List<DadosColunas>>(new TipoObjetoBanco(nomeObjeto, tipo.ToString(), Parametros), colunasObjeto); } GridView.CarregaGridViewColunas(gvColunasObjeto, ObjetosSelecionado, IlObjetos); } catch (Exception ex) { MessageBox.Show(string.Format("Erro:\n{0}", ex.Message), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private static void GeraClassesORM(TipoObjetoBanco objOrm, List<DadosColunas> colunasObjeto, ParametrosCriarProjetos parametros) { var gerador = new Gerador { Log = Log }; var nomeArquivo = Gerador.RetornaNomeClasseAjustado(objOrm.NomeObjeto); var arquivo = gerador.GerarClasseTO(colunasObjeto, objOrm.NomeObjeto, parametros.NameSpace, objOrm.Associacoes, objOrm.Enumns, parametros); var arquivoBLL = gerador.GerarClasseBLL(nomeArquivo, parametros.NameSpace, objOrm.TipoObjeto, objOrm.Parametros); var arquivoDAL = gerador.GerarClasseDAL(nomeArquivo, parametros.NameSpace, objOrm.TipoObjeto, objOrm.Parametros, objOrm.QuerySql); File.WriteAllText(string.Format("{0}\\TO\\{1}TO.cs", parametros.CaminhoDestino, nomeArquivo), arquivo); File.WriteAllText(string.Format("{0}\\BLL\\{1}BLL.cs", parametros.CaminhoDestino, nomeArquivo), arquivoBLL); File.WriteAllText(string.Format("{0}\\DAL\\{1}DAL.cs", parametros.CaminhoDestino, nomeArquivo), arquivoDAL); }
public string GerarClasseDAL(string nomeTabela, string strNamespace, TipoObjetoBanco.ETipoObjeto tipoObjeto, List<DadosStoredProceduresParameters> parametros, string query) { string textoBase; switch (tipoObjeto) { case TipoObjetoBanco.ETipoObjeto.Tabela: textoBase = RetornaTextoBase("padraoDALNativo"); break; case TipoObjetoBanco.ETipoObjeto.Query: case TipoObjetoBanco.ETipoObjeto.Procedure: textoBase = RetornaTextoBase("padraoDALProc"); textoBase = textoBase.Replace("{parametros}", string.Join(", ", parametros.Select(p => string.Format("{0} {1}", p.ParameterDotNetType, p.ParameterName)))); var sbParametros = new StringBuilder(); foreach (var parametro in parametros) { sbParametros.AppendLine(string.Format("cmd.Parameters.AddWithValue(\"{0}\", {0});", parametro.ParameterName)); } textoBase = textoBase.Replace("{carregaParametros}", sbParametros.ToString()); textoBase = textoBase.Replace("{query}", tipoObjeto == TipoObjetoBanco.ETipoObjeto.Procedure ? nomeTabela : query); textoBase = textoBase.Replace("{proc}", tipoObjeto == TipoObjetoBanco.ETipoObjeto.Procedure ? "cmd.CommandType = CommandType.StoredProcedure;" : ""); break; case TipoObjetoBanco.ETipoObjeto.View: textoBase = RetornaTextoBase("padraoDALNativo"); textoBase = Regex.Replace(textoBase, "#region .: Persistencia :.(.|\n)*?#endregion", string.Empty); break; default: throw new ArgumentOutOfRangeException("tipoObjeto"); } textoBase = Log ? textoBase.Replace("[log]", "Log.Error(ex.Message, ex);").Replace("[logHeader]", string.Format("private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof({0}DAL));", nomeTabela)) : textoBase.Replace("[log]", "").Replace("[logHeader]", ""); return textoBase.Replace("{namespace}", strNamespace).Replace("{classe}", (nomeTabela)); }
public string GerarClasseBLL(string nomeTabela, string strNamespace, TipoObjetoBanco.ETipoObjeto tipoObjeto, List<DadosStoredProceduresParameters> parametros) { string textoBase; switch (tipoObjeto) { case TipoObjetoBanco.ETipoObjeto.Tabela: textoBase = RetornaTextoBase("padraoBLLNativo"); break; case TipoObjetoBanco.ETipoObjeto.Query: case TipoObjetoBanco.ETipoObjeto.Procedure: textoBase = RetornaTextoBase("padraoBLLProc"); textoBase = textoBase.Replace("{parametros}", string.Join(", ", parametros.Select(p => string.Format("{0} {1}", p.ParameterDotNetType, p.ParameterName)))); textoBase = textoBase.Replace("{parametros2}", string.Join(", ", parametros.Select(p => p.ParameterName))); break; case TipoObjetoBanco.ETipoObjeto.View: textoBase = RetornaTextoBase("padraoBLLNativo"); textoBase = Regex.Replace(textoBase, "#region .: CRUD :.(.|\n)*?#endregion", string.Empty); break; default: throw new ArgumentOutOfRangeException("tipoObjeto"); } textoBase = Log ? textoBase.Replace("[log]", "Log.Error(ex.Message, ex);").Replace("[logHeader]", string.Format("private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(typeof({0}BLL));", nomeTabela)) : textoBase.Replace("[log]", "").Replace("[logHeader]", ""); return textoBase.Replace("{namespace}", strNamespace).Replace("{classe}", (nomeTabela)); }
/// <summary> /// Carrega os campos do objeto alvo /// </summary> /// <param name="nomeObjeto">nome do objeto</param> /// <param name="tipo">tipo do objeto (tabela,view,procedure)</param> /// <param name="retornaDados">REtorna a lista de campos obtidas</param> private List<DadosColunas> CarregaCamposObjeto(string nomeObjeto, TipoObjetoBanco.ETipoObjeto tipo, bool retornaDados = false) { try { var colunasObjeto = new List<DadosColunas>(); switch (tipo) { case TipoObjetoBanco.ETipoObjeto.Tabela: colunasObjeto = Gerador.MapeamentoTabela.ListAllFieldsFromTable(BancoSelecionado, nomeObjeto, DadosLogin); break; case TipoObjetoBanco.ETipoObjeto.View: colunasObjeto = Gerador.MapeamentoView.ListAllFieldsFromViews(BancoSelecionado, nomeObjeto, DadosLogin); break; case TipoObjetoBanco.ETipoObjeto.Procedure: if (MessageBox.Show(string.Format("Algumas procedures podem desencadear uma sequencia de insert's, update's e delete's.\nExecute apenas procedures que você conheça o funcionamento e que retornem dados.\nDeseja executar a procedure '{0}' ?", nomeObjeto), "ATENÇÃO", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { colunasObjeto = Gerador.MapeamentoProcedure.ListAllFieldsFromStoredProcedure(BancoSelecionado, nomeObjeto, Parametros, DadosLogin); } else { return retornaDados ? colunasObjeto : new List<DadosColunas>(); } break; default: throw new ArgumentOutOfRangeException("tipo", "Tipo inválido"); } if (retornaDados) { return colunasObjeto; } //Carrega o objeto que deve ser exibido if (_objetosSelecionados == null) { _objetosSelecionados = new List<KeyValuePair<TipoObjetoBanco, List<DadosColunas>>>(); } _objetosSelecionados.Add(new KeyValuePair<TipoObjetoBanco, List<DadosColunas>>(new TipoObjetoBanco(nomeObjeto, tipo.ToString(), Parametros), colunasObjeto)); } catch (Exception ex) { MessageBox.Show(string.Format("Erro:\n{0}", ex.Message), ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } return null; }
private void lvObjetosBanco_ItemCheck(object sender, ItemCheckEventArgs e) { if (lvObjetosBanco.Items[e.Index].Group == lvObjetosBanco.Groups["procedure"] && e.NewValue == CheckState.Checked) { var nomesTiposObjeto = new TipoObjetoBanco(lvObjetosBanco.Items[e.Index].Text, lvObjetosBanco.Items[e.Index].SubItems[4].Text, new List<DadosStoredProceduresParameters>()); Parametros = Gerador.MapeamentoProcedure.ListaAllStoredProceduresParameters(BancoSelecionado, DadosLogin, lvObjetosBanco.Items[e.Index].Text); if (Parametros.Count > 0) { var frm = new frmParametros { Parametros = Parametros }; if (frm.ShowDialog(this) == DialogResult.Yes) { nomesTiposObjeto.Parametros = frm.Parametros; } else { MessageBox.Show("Não é possivel carregar os dadso da StoredProcedure sem o preenchimento dos parametros", "", MessageBoxButtons.OK, MessageBoxIcon.Information); e.NewValue = CheckState.Unchecked; return; } frm.Dispose(); } _imgObjetosMapeados.Add(new KeyValuePair<string, Image>(lvObjetosBanco.Items[e.Index].Text, ilIcones.Images["cheked"])); _objetosSelecionados.Add(new KeyValuePair<TipoObjetoBanco, List<DadosColunas>>(nomesTiposObjeto, CarregaCamposObjeto(nomesTiposObjeto.NomeObjeto, nomesTiposObjeto.TipoObjeto, true))); } if (e.NewValue == CheckState.Unchecked) { _objetosSelecionados = _objetosSelecionados.Where(o => o.Key.NomeObjeto != lvObjetosBanco.Items[e.Index].Text).ToList(); _imgObjetosMapeados = _imgObjetosMapeados.Where(o => o.Key != lvObjetosBanco.Items[e.Index].Text).ToList(); } }