private void lvObjetosBanco_MouseClick(object sender, MouseEventArgs e) { var retorno = lvObjetosBanco.HitTest(e.X, e.Y); if (retorno.SubItem != null) { if (retorno.SubItem.Text == "Tabela" || retorno.SubItem.Text == "View" || retorno.SubItem.Text == "Procedure") { using (var frm = new frmMapeamentoUnitario()) { frm.Gerador = Gerador; frm.DadosLogin = User; frm.BancoSelecionado = BancoSelecionado; frm.Parametros = Parameters; frm.IlObjetos = ilObjetos; frm.NomeObjeto = retorno.Item.Text; frm.TipoObjeto = retorno.SubItem.Text.ConvertToEnum<EDatabaseObjectType>(); if (_selectedObjects.Exists(o => o.Name == retorno.Item.Text)) { frm.ObjetosSelecionado = _selectedObjects.FirstOrDefault(o => o.Name == retorno.Item.Text); } switch (frm.ShowDialog(this)) { case DialogResult.Yes: if (!_selectedObjects.Exists(o => o.Name == frm.ObjetosSelecionado.Name)) { _selectedObjects.Add(frm.ObjetosSelecionado); _imgObjetosMapeados.Add(new KeyValuePair<string, Image>(retorno.Item.Text, ilIcones.Images["cheked"])); } else { _selectedObjects = _selectedObjects.Where(o => o.Name != retorno.Item.Text).ToList(); _selectedObjects.Add(frm.ObjetosSelecionado); } break; default: _selectedObjects = _selectedObjects.Where(o => o.Name != retorno.Item.Text).ToList(); _imgObjetosMapeados = _imgObjetosMapeados.Where(o => o.Key != retorno.Item.Text).ToList(); lvObjetosBanco.Items[retorno.Item.Index].Checked = false; break; } } } } }
private void btnMapear_Click(object sender, EventArgs e) { if (!txtConsulta.Text.ContainsInsensitive("select")) { MessageBox.Show("O comando SQL deve iniciar com SELECT", Text, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (_parametros.Count > 0) { foreach ( var parametro in _parametros.Where(parametro => parametro.ParameterValue == null && !parametro.DefaultNull)) { MessageBox.Show(string.Format("Parâmetro {0} não pode ser nulo", parametro.ParameterName), "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } try { for (var i = 0; i < dgParametros.Rows.Count; i++) { foreach ( var parametro in _parametros.Where( parametro => parametro.ParameterName == dgParametros.Rows[i].Cells[0].Value.ToString())) { parametro.ParameterValue = ((bool) dgParametros.Rows[i].Cells[1].Value) ? null : Convert.ChangeType(dgParametros.Rows[i].Cells[3].Value, dgParametros.Rows[i].Cells[3].ValueType); parametro.ParameterDotNetType = ((bool) dgParametros.Rows[i].Cells[1].Value) ? "object" : dgParametros.Rows[i].Cells[3].ValueType.FullName.Replace("System.", ""); } } } catch (Exception ex) { MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } } DadosLogin.DatabaseName = BancoSelecionado; List<ColumnInfo> colunas; try { colunas = Gerador.MapQuery(txtConsulta.Text.Trim(), _parametros.ToList(), DadosLogin); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.Source, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } using (var frm = new frmMapeamentoUnitario()) { frm.Gerador = Gerador; frm.DadosLogin = DadosLogin; frm.BancoSelecionado = BancoSelecionado; frm.Parametros = _parametros.ToList(); frm.IlObjetos = IlObjetos; frm.TipoObjeto = EDatabaseObjectType.Query; frm.NomeObjeto = "Query"; frm.Consulta = txtConsulta.Text.Trim(); frm.Colunas = colunas; frm.button1.Enabled = false; frm.ShowDialog(this); ObjetoSelecionado = frm.ObjetosSelecionado; } Close(); }