public bool IsExisting(RoleAccessControlObject roleAccessControlObject) { using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(myAdapter); return(linqMetaData.RoleAccessControlObject.Any(r => r.RoleId == roleAccessControlObject.Role.Id && r.AccessControlObjectId == roleAccessControlObject.AccessControlObject.Id)); } }
public void DeleteRoleAccessControlObject(RoleAccessControlObject roleAccessControlObject) { using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { var relationPredicateBucket = new RelationPredicateBucket(RoleAccessControlObjectFields.AccessControlObjectId == roleAccessControlObject.AccessControlObject.Id); relationPredicateBucket.PredicateExpression.AddWithAnd(RoleAccessControlObjectFields.RoleId == roleAccessControlObject.Role.Id); relationPredicateBucket.PredicateExpression.AddWithAnd(RoleAccessControlObjectFields.ScopeId == (long)roleAccessControlObject.DataScope); relationPredicateBucket.PredicateExpression.AddWithAnd(RoleAccessControlObjectFields.PermissionTypeId == (long)roleAccessControlObject.PermissionType); myAdapter.DeleteEntitiesDirectly(typeof(RoleAccessControlObjectEntity), relationPredicateBucket); } }
public RoleAccessControlObject SaveRoleAccessControlObject(RoleAccessControlObject roleAccessControlObject) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var entity = Mapper.Map <RoleAccessControlObject, RoleAccessControlObjectEntity>(roleAccessControlObject); entity.IsNew = !IsExisting(roleAccessControlObject); if (!adapter.SaveEntity(entity, true, true)) { throw new PersistenceFailureException(); } return(roleAccessControlObject); } }
private void SaveWithoutUpdatingChildRole(RoleAccessControlObjectEditModel model) { var roleAccessControlObjects = _roleAccessControlObjectRepository.GetRoleAccessControlObjectByRoleId(model.RoleId).ToArray(); var objsToSave = GetSelectedObjects(model.AccessControlObjects); var objAccessIds = objsToSave.Select(x => x.FirstValue).ToArray(); var objsToDelete = roleAccessControlObjects.Where(x => !objAccessIds.Contains(x.AccessControlObject.Id)).ToArray(); foreach (RoleAccessControlObject roleAccessControlObject in objsToDelete) { roleAccessControlObject.PermissionType = PermissionType.Deny; _roleAccessControlObjectRepository.SaveRoleAccessControlObject(roleAccessControlObject); //_roleAccessControlObjectRepository.DeleteRoleAccessControlObject(roleAccessControlObject); } foreach (var item in objsToSave) { var obj = roleAccessControlObjects.SingleOrDefault(x => x.AccessControlObject.Id == item.FirstValue); if (obj != null) { obj.DataScope = (DataScope)item.SecondValue; obj.PermissionType = PermissionType.Allow; _roleAccessControlObjectRepository.SaveRoleAccessControlObject(obj); } else { obj = new RoleAccessControlObject { AccessControlObject = _accessControlObjectRepository.GetAccessControlObjectById(item.FirstValue), DataScope = (DataScope)item.SecondValue, Role = new Role(model.RoleId), PermissionType = PermissionType.Allow }; _roleAccessControlObjectRepository.SaveRoleAccessControlObject(obj); } } }