public void Clear() { GameCenter.ClearAll(); UserManager.Clear(); Leagues.Clear(); Players.Clear(); Rooms.Clear(); Users.Clear(); PlayerToRoom.Clear(); RoomToLeague.Clear(); }
public bool Refresh() { /** * Note: checking if cache has changed after refresh * * Algorithm: * checking if the sequence had changed (by sequenceEqual). * if it had changed - an update occur. and isChanged = true; * * Author: * Idan Izicovich. * */ /* ---------- Cache Dictionaries ---------- */ // Users bool isUserChanged = false; if (!UserManager.Users.SequenceEqual(Users)) { Users.Clear(); UserManager.Users.ToList().ForEach(userPair => Users.Add(userPair.Key, userPair.Value)); isUserChanged = true; } // Players bool isPlayersChanged = false; if (!GameCenter.Players.SequenceEqual(Players.Values, new AddressComparer <Player>())) { Players.Clear(); GameCenter.Players.ToList().ForEach(player => Players.Add(player.GetHashCode(), player)); isPlayersChanged = true; } // Rooms bool isRoomChanged = false; if (!GameCenter.Rooms.SequenceEqual(Rooms.Values)) { Rooms.Clear(); GameCenter.Rooms.ToList().ForEach(room => Rooms.Add(room.GetHashCode(), room)); isRoomChanged = true; } // Leagues //Undone: idan - make sure this is the right dictionary key needed for mapping the leagues at the cache bool isLeagueChange = false; if (!GameCenter.Leagues.SequenceEqual(Leagues.Values)) { Leagues.Clear(); GameCenter.Leagues.ToList().ForEach(league => Leagues.Add(league.GetHashCode(), league)); isLeagueChange = true; } /* ------- link-cache dictionaries ---------- */ // PlayerToRoom if (isPlayersChanged | isRoomChanged) { PlayerToRoom.Clear(); GameCenter.PlayerToRoom.ToList().ForEach(pair => PlayerToRoom.Add(pair.Key, pair.Value)); } // RoomToLeague if (isRoomChanged | isLeagueChange) { RoomToLeague.Clear(); GameCenter.RoomToLeague.ToList().ForEach(pair => RoomToLeague.Add(pair.Key, pair.Value)); } return(isLeagueChange | isPlayersChanged | isRoomChanged | isUserChanged); }