/// <summary> /// Deletes Media Buffer Server from System /// </summary> /// <param name="MediaBufferServerId"></param> internal bool DeleteMediaBufferServer(OCL.User AccessingUser, OCL.MediaBufferServer TargetMBS) { OCL.MediaBufferServer DefaultMBS = (OCL.MediaBufferServer)GetUnassignedObject(OCL.OysterUnassignedObjects.MediaBufferServer); if(DefaultMBS.mvarID == TargetMBS.mvarID) return false; if(!AccessingUser.mvarIsSuperUser) { OCL.Group DG = (OCL.Group)GetUnassignedObject(OCL.OysterUnassignedObjects.Group); OCL.Permission PP = GetPermission(DG,AccessingUser,TargetMBS); if(!PP.CanDelete) { return false; } } //Check if any Sources are attached string sSQL = "UPDATE tblSource SET MediaBufferServerId = " + DefaultMBS.mvarID + " WHERE MediaBufferServerId = " + TargetMBS.mvarID; RF.ExecuteCommandNonQuery(sSQL); //Now it is safe to DELETE the Source sSQL = "DELETE FROM tblMediaBufferServer WHERE Id = " + TargetMBS.mvarID; int numrecs = 0; try { numrecs = RF.ExecuteCommand(sSQL); if(numrecs < 1) throw new ArgumentException("Attempt to delete a Media Buffer Server that doesn't exist",TargetMBS.ToString()); } catch(Exception Err) { MediaBufferServer R = GetMediaBufferServer(TargetMBS.mvarID); if(R != null) { throw new ApplicationException("Error attempting to Remove Source: " + R.mvarAddress + ": " + R.mvarPort + " ERROR MESSAGE: " + Err.Message); } else throw new ArgumentException("Attempt to delete a Media Buffer Server that doesn't exist",TargetMBS.ToString()); } return true; }