private void btn_rmPermission_Save_Click(object sender, EventArgs e) { Program.ExitCode status; if (cb_Action.Text == "" || cb_Object.Text == "") { MessageBox.Show(this, "Выберите Операцию и Объект!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //Создать PermissionPerObject: PermissionPerObject ppo = new PermissionPerObject { Action_Id = Convert.ToInt32(cb_Action.SelectedValue), Object_Id = Convert.ToInt32(cb_Object.SelectedValue), Permission_Id = Convert.ToInt32(cb_Permission.SelectedValue), }; status = RBACManager.RmPermissionPerObject(ppo, mainForm.db); if (status == Program.ExitCode.Success) { MessageBox.Show(this, "Permission c выбранными Action и Object успешно удален!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); return; } if (status == Program.ExitCode.Error) { MessageBox.Show(this, "Error while submitting deletion to the DataBase", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (status == Program.ExitCode.ElementDoesNotExists) { MessageBox.Show(this, "Выбранной тройки Permission-Action-Object не существует!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } }
partial void DeletePermissionPerObject(PermissionPerObject instance);
partial void UpdatePermissionPerObject(PermissionPerObject instance);
partial void InsertPermissionPerObject(PermissionPerObject instance);
private void detach_PermissionPerObject(PermissionPerObject entity) { this.SendPropertyChanging(); entity.Action = null; }
private void attach_PermissionPerObject(PermissionPerObject entity) { this.SendPropertyChanging(); entity.Permission = this; }
public static Program.ExitCode RmPermissionPerObject(PermissionPerObject ppo_in, rbacLINQ2SQLDataContext db) { var query_ppo = from ppo in db.PermissionPerObject where ppo.Action_Id == ppo_in.Action_Id && ppo.Object_Id == ppo_in.Object_Id && ppo.Permission_Id == ppo_in.Permission_Id select ppo; // if there's no such an element - return corresponding status: if (query_ppo.Count() == 0) return Program.ExitCode.ElementDoesNotExists; //Otherwise, delete from PermissionPerObject: db.PermissionPerObject.DeleteOnSubmit(query_ppo.First()); try { db.SubmitChanges(); } catch (Exception exc) { return Program.ExitCode.Error; } // Check, if there's a PpO entity for the ppo.Permission_Id permission. query_ppo = from ppo in db.PermissionPerObject where ppo.Permission_Id == ppo_in.Permission_Id select ppo; // If not, delete this "empty" ppo.Permission_Id from Permission and from RolePermission // Otherwise, return success if (query_ppo.Count() != 0) { return Program.ExitCode.Success; } else { var query_p = from p in db.Permission where p.Id == ppo_in.Permission_Id select p; db.RolePermission.DeleteAllOnSubmit(query_p.First().RolePermission); db.Permission.DeleteOnSubmit(query_p.First()); try { db.SubmitChanges(); } catch (Exception exc) { return Program.ExitCode.Error; } } return Program.ExitCode.Success; }