public void checkLastPlayer(int roomId)
        {
            var roomDb = new MonopolyDbContext();
            List <ConnectionIds> connections = roomDb.ConnectionIds.Where(x => x.RoomId == roomId).ToList();
            List <Room>          rooms       = roomDb.Rooms.ToList();

            if (connections.Count() == 1)
            {
                foreach (ConnectionIds connection in connections)
                {
                    if (connection.RoomId == roomId)
                    {
                        roomDb.Remove(connection);
                        roomDb.SaveChanges();
                    }
                }

                foreach (Room room in rooms)
                {
                    if (room.RoomId == roomId)
                    {
                        roomDb.Remove(room);
                        roomDb.SaveChanges();
                    }
                }
            }
        }
        public void AddRoom(Room room)
        {
            var                  gameRoomContext = new MonopolyDbContext();
            List <Room>          rooms           = gameRoomContext.Rooms.ToList();
            List <ConnectionIds> connections     = gameRoomContext.ConnectionIds.ToList();

            foreach (Room r in rooms)
            {
                if (r.Player1 == room.Player1 || r.Player2 == room.Player1 || r.Player3 == room.Player1 || r.Player4 == room.Player1)
                {
                    gameRoomContext.Remove(r);
                    gameRoomContext.SaveChanges();
                }
            }

            foreach (ConnectionIds c in connections)
            {
                if (c.PlayerName == room.Player1)
                {
                    gameRoomContext.Remove(c);
                    gameRoomContext.SaveChanges();
                }
            }
            gameRoomContext.Rooms.Add(room);
            gameRoomContext.SaveChanges();
        }
        public void AddPlayerToRoom(int roomId, string player)
        {
            //remove all connections and rooms for this player
            var gameRoomContext = new MonopolyDbContext();

            List <Room>          rooms       = gameRoomContext.Rooms.ToList();
            List <ConnectionIds> connections = gameRoomContext.ConnectionIds.ToList();

            foreach (Room r in rooms)
            {
                if (r.Player1 == player || r.Player2 == player || r.Player3 == player || r.Player4 == player)
                {
                    gameRoomContext.Remove(r);
                    gameRoomContext.SaveChanges();
                }
            }

            foreach (ConnectionIds c in connections)
            {
                if (c.PlayerName == player)
                {
                    gameRoomContext.Remove(c);
                    gameRoomContext.SaveChanges();
                }
            }


            Room room = gameRoomContext.Rooms.Where(x => x.RoomId == roomId).FirstOrDefault();

            if (room != null)
            {
                if (room.Player1 == null)
                {
                    room.Player1 = player;
                }
                else if (room.Player2 == null)
                {
                    room.Player2 = player;
                }
                else if (room.Player3 == null)
                {
                    room.Player3 = player;
                }
                else if (room.Player4 == null)
                {
                    room.Player4 = player;
                }
                gameRoomContext.SaveChanges();
            }
        }
        public void removeConnection(string currentPlayer)
        {
            int           roomId     = 0;
            var           roomDb     = new MonopolyDbContext();
            ConnectionIds connection = roomDb.ConnectionIds.Where(x => x.PlayerName == currentPlayer).FirstOrDefault();

            if (connection != null)
            {
                roomId = roomDb.ConnectionIds.Where(x => x.PlayerName == currentPlayer).FirstOrDefault().RoomId;
                roomDb.Remove(connection);
                roomDb.SaveChanges();
            }
            checkLastPlayer(roomId);
        }
        public void PlayerLeavesGame(string player)
        {
            int           roomId     = 0;
            var           roomDb     = new MonopolyDbContext();
            ConnectionIds connection = roomDb.ConnectionIds.Where(x => x.PlayerName == player).FirstOrDefault();

            if (connection != null)
            {
                roomId = roomDb.ConnectionIds.Where(x => x.PlayerName == player).FirstOrDefault().RoomId;
                roomDb.Remove(connection);
                roomDb.SaveChanges();
            }

            Room room = roomDb.Rooms.Where(x => x.Player1 == player || x.Player2 == player || x.Player3 == player || x.Player4 == player).FirstOrDefault();

            if (room != null)
            {
                if (room.Player1 == player)
                {
                    room.Player1 = null;
                }
                else if (room.Player2 == player)
                {
                    room.Player2 = null;
                }
                else if (room.Player3 == player)
                {
                    room.Player3 = null;
                }
                else if (room.Player4 == player)
                {
                    room.Player4 = null;
                }
                roomDb.SaveChanges();
            }
        }