protected void OnRemoveActionActivated(object sender, System.EventArgs e) { TreeIter iter; treeviewref.Selection.GetSelected(out iter); SelectedID = (int)filter.GetValue(iter, 0); bool result; if (QSMain.IsOrmDeletionConfigered) { result = QSMain.OnOrmDeletion(TableRef, SelectedID); } else { Delete winDelete = new Delete(); result = winDelete.RunDeletion(TableRef, SelectedID); winDelete.Destroy(); } if (result) { UpdateList(); RefChanged = true; } }
protected void OnButtonDeleteClicked(object sender, EventArgs e) { TreeIter iter; treeviewUsers.Selection.GetSelected (out iter); int itemid = (int)UsersListStore.GetValue (iter, 0); string loginname = UsersListStore.GetValue (iter, 1).ToString (); bool result; if (QSMain.IsOrmDeletionConfigered) { result = QSMain.OnOrmDeletion ("users", itemid); } else { Delete winDel = new Delete (); result = winDel.RunDeletion ("users", itemid); winDel.Destroy (); } if (result) { logger.Info ("Удаляем пользователя MySQL..."); if (QSSaaS.Session.IsSaasConnection) { QSSaaS.ISaaSService svc = QSSaaS.Session.GetSaaSService (); if (!svc.changeBaseAccessFromProgram (QSSaaS.Session.SessionId, loginname, QSSaaS.Session.SaasBaseName, false)) logger.Error ("Ошибка удаления доступа к базе на сервере SaaS."); } else { string sql; sql = "DROP USER @login, @login @'localhost'"; try { QSMain.CheckConnectionAlive (); MySqlCommand cmd = new MySqlCommand (sql, QSMain.connectionDB); cmd.Parameters.AddWithValue ("@login", loginname); cmd.ExecuteNonQuery (); logger.Info ("Пользователь удалён. Ok"); if (QSMain.User.Id == itemid) { MessageDialog md = new MessageDialog (this, DialogFlags.DestroyWithParent, MessageType.Warning, ButtonsType.Close, "Был удален пользователь, под которым Вы подключились к базе данных, чтобы недопустить некорректных операций программа закроется. Зайдите в программу от имени другого пользователя."); md.Run (); md.Destroy (); Environment.Exit (0); } } catch (Exception ex) { logger.Error (ex, "Ошибка удаления пользователя!"); QSMain.ErrorMessage (this, ex); } } } UpdateUsers (); }
protected void OnButtonDeleteClicked(object sender, EventArgs e) { TreeIter iter; treeviewUsers.Selection.GetSelected(out iter); int itemid = (int)UsersListStore.GetValue(iter, 0); string loginname = UsersListStore.GetValue(iter, 1).ToString(); bool result; if (QSMain.IsOrmDeletionConfigered) { result = QSMain.OnOrmDeletion("users", itemid); } else { Delete winDel = new Delete(); result = winDel.RunDeletion("users", itemid); winDel.Destroy(); } if (result) { if (QSSaaS.Session.IsSaasConnection) { logger.Info("Удаляем пользователя в облаке..."); QSSaaS.ISaaSService svc = QSSaaS.Session.GetSaaSService(); if (!svc.changeBaseAccessFromProgram(QSSaaS.Session.SessionId, loginname, QSSaaS.Session.SaasBaseName, false)) { logger.Error("Ошибка удаления доступа к базе на сервере SaaS."); } if (svc.UserAccessBaseCount(QSSaaS.Session.SessionId, QSSaaS.Session.Account, loginname) == 0) { if (MessageDialogWorks.RunQuestionDialog($"У пользователя '{loginname}' на сервисе QS:Облако больше не осталось баз данных, к которым он имеет доступ. Удалить пользователя с QS:Облако тоже?")) { if (!svc.DeleteCloudUser(QSSaaS.Session.SessionId, QSSaaS.Session.Account, loginname)) { var text = "Удаления пользователя с QS:Облако не произошло."; logger.Error(text); MessageDialogWorks.RunErrorDialog(text); } } } } else { logger.Info("Удаляем пользователя MySQL..."); string sql; sql = "DROP USER @login, @login @'localhost'"; try { QSMain.CheckConnectionAlive(); MySqlCommand cmd = new MySqlCommand(sql, QSMain.connectionDB); cmd.Parameters.AddWithValue("@login", loginname); cmd.ExecuteNonQuery(); logger.Info("Пользователь удалён. Ok"); if (QSMain.User.Id == itemid) { MessageDialog md = new MessageDialog(this, DialogFlags.DestroyWithParent, MessageType.Warning, ButtonsType.Close, "Был удален пользователь, под которым Вы подключились к базе данных, чтобы недопустить некорректных операций программа закроется. Зайдите в программу от имени другого пользователя."); md.Run(); md.Destroy(); Environment.Exit(0); } } catch (Exception ex) { logger.Error(ex, "Ошибка удаления пользователя!"); QSMain.ErrorMessage(this, ex); } } } UpdateUsers(); }
protected void OnRemoveActionActivated(object sender, System.EventArgs e) { TreeIter iter; treeviewref.Selection.GetSelected(out iter); SelectedID = (int) filter.GetValue(iter, 0); bool result; if (QSMain.IsOrmDeletionConfigered) { result = QSMain.OnOrmDeletion (TableRef, SelectedID); } else { Delete winDelete = new Delete(); result = winDelete.RunDeletion (TableRef, SelectedID); winDelete.Destroy(); } if(result) { UpdateList(); RefChanged = true; } }