public void AddRoomRole(RoomRole roomRole) { var room = Rooms.FirstOrDefault(r => r.Id == roomRole.Room_Id); if (room != null) { lock (RoomRoles) { if (RoomRoles.FirstOrDefault(rr => rr.Room_Id == roomRole.Room_Id && rr.User_Id == roomRole.User_Id && rr.Role_Id == roomRole.Role_Id) == null) { RoomRoles.Add(roomRole); lock (room.RoomRoles) { room.RoomRoles.Add(roomRole); } } } } }
public void RemoveRoomRole(int roomId, int roleId, int userId) { var room = Rooms.FirstOrDefault(r => r.Id == roomId); if (room != null) { lock (RoomRoles) { var roomRole = RoomRoles.FirstOrDefault(rr => rr.Room_Id == roomId && rr.User_Id == userId && rr.Role_Id == roleId); if (roomRole != null) { lock (room.RoomRoles) { room.RoomRoles.Remove(roomRole); } RoomRoles.Remove(roomRole); } } } }