private void GerenciarPermissoesEmFormulario_Load(object sender, EventArgs e) { dgvControles.AutoGenerateColumns = false; formularioDoBD = DAOFormularioMySQL.ListarWhereUniqueResult(new List<string> {"nome"}, new List<string> {formulario.Name}); if (formularioDoBD == null) { var result = MessageBox.Show( "Este formulário não está cadastrado no sistema. Deseja fazer isso agora?", "AVISO", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (result == DialogResult.OK) { formularioDoBD = DAOFormularioMySQL.Salvar(new Formulario { nome = formulario.Name, data_mod = DateTime.Now }); if (formularioDoBD != null) { DAOFormularioSQLServer.Salvar(new Formulario { nome = formulario.Name, data_mod = DateTime.Now }); var lista = new List<object>(); ListaControles(formulario.Controls, lista, formularioDoBD); if (DAOControlMySQL.SalvarColecao(lista)) { DAOControlSQLServer.SalvarColecao(lista); MessageBox.Show("Controles salvos com sucesso."); } } else { MessageBox.Show("Erro ao salvar formulário."); } } else { Close(); } } try { txtNomeForm.Text = formularioDoBD.nome; dgvControles.DataSource = DAOControlMySQL.ListarWhere("formulario", formularioDoBD); } catch (NullReferenceException) { MessageBox.Show("Erro ao recuperar formulário em banco de dados do sistema."); } }
private void ListaControles(Control.ControlCollection colecao, List<object> lista, Formulario formBd) { DateTime dataAtual = DateTime.Now; Permissoes permissaoDefault = new Permissoes { idpermissoes = 1 }; foreach (Control ctr in colecao) { var c = new ControlTable { formulario = formBd, nome = ctr.Name, data_mod = dataAtual, permissoes = permissaoDefault }; if (ctr.GetType() == typeof(ToolStrip)) { foreach (ToolStripItem item in ((ToolStrip) ctr).Items) { var c2 = new ControlTable { formulario = formBd, nome = item.Name, data_mod = dataAtual, permissoes = permissaoDefault }; lista.Add(c2); } } else { foreach (Control item in ctr.Controls) { var c2 = new ControlTable { formulario = formBd, nome = item.Name, data_mod = dataAtual, permissoes = permissaoDefault }; lista.Add(c2); } } lista.Add(c); } }