partial void DeleteStaticSOD(StaticSOD instance);
partial void UpdateStaticSOD(StaticSOD instance);
partial void InsertStaticSOD(StaticSOD instance);
private void detach_StaticSOD1(StaticSOD entity) { this.SendPropertyChanging(); entity.Role1 = null; }
private void attach_StaticSOD1(StaticSOD entity) { this.SendPropertyChanging(); entity.Role1 = this; }
// StaticSOD and DynamicSOD are not fully implemented // (with paying no attention to Role Hierarchy relations) public static Program.ExitCode AddStaticSOD(Role r1, Role r2, rbacLINQ2SQLDataContext db) { // Check if roles exist var role1 = from r in db.Role where r.Name == r1.Name && r.Policy_Id == r1.Policy_Id select r; var role2 = from r in db.Role where r.Name == r2.Name && r.Policy_Id == r2.Policy_Id select r; if (role1.Count() == 1 || role2.Count() == 1) { StaticSOD ssod1 = new StaticSOD() { Role_Id = role1.First().Id, ExclusiveRole_Id = role2.First().Id, }; StaticSOD ssod2 = new StaticSOD() { Role_Id = role2.First().Id, ExclusiveRole_Id = role1.First().Id, }; // Check if SSOD exists: var query1 = from t in db.StaticSOD where t.Role_Id == ssod1.Role_Id && t.ExclusiveRole_Id == ssod1.ExclusiveRole_Id select t; var query2 = from t in db.StaticSOD where t.Role_Id == ssod2.Role_Id && t.ExclusiveRole_Id == ssod2.ExclusiveRole_Id select t; if (query1.Count() == 1 && query2.Count() == 1) { return Program.ExitCode.ElementExists; } try { if (query1.Count() != 1) db.StaticSOD.InsertOnSubmit(ssod1); if (query2.Count() != 1) db.StaticSOD.InsertOnSubmit(ssod2); db.SubmitChanges(); return Program.ExitCode.Success; } catch { return Program.ExitCode.Error; } } else { return Program.ExitCode.ElementDoesNotExists; } }