public override int GetHashCode() { // http://stackoverflow.com/questions/670063/getting-hash-of-a-list-of-strings-regardless-of-order // Items are unique - probability of getting the same hashcode is lower. var playerDetailsHash = PlayersDetails.Aggregate(0, (i, details) => i ^ details.GetHashCode()); var damageDetailshash = DamagesDetails.Aggregate(0, (i, details) => i ^ details.GetHashCode()); return(unchecked (((PlayersDetails.Count() * 397) ^ playerDetailsHash) + ((DamagesDetails.Count() * 397) ^ damageDetailshash))); }
//get player with name username details public PlayersDetails getPlayerDetails(string username) { PlayersDetails player = null; Thread t = new Thread(() => { player = cs.getPlayerDetails(username); }); t.Start(); t.Join(); if (player == null) { throwUserNotFoundFault(username); } return(player); }
private void setTextBoxesToPlayerData(PlayersDetails playerDetails) { txtNumOfGames.Text = playerDetails.numOfGames.ToString(); txtNumOfLoses.Text = playerDetails.numOfLoses.ToString(); txtNumOfPoints.Text = playerDetails.numOfPoints.ToString(); txtNumOfWins.Text = playerDetails.numOfWins.ToString(); if (playerDetails.numOfGames == 0) // to make sure not to divide by 0 { txtWinPercent.Text = "0"; return; } txtWinPercent.Text = (((double)playerDetails.numOfWins / playerDetails.numOfGames) * 100).ToString() + "%"; }
private PlayersDetails getPlayerDetails(string playername) { PlayersDetails playerDetails = null; Thread t = new Thread(() => { try { playerDetails = client.getPlayerDetails(playername); } catch (FaultException <UserNotFoundFault> ex) { MessageBox.Show(ex.Detail.Message); return; } }); t.Start(); t.Join(); return(playerDetails); }
public bool Equals(BroadcastMessage other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } // http://stackoverflow.com/questions/3669970/compare-two-listt-objects-for-equality-ignoring-order // Items are unique - so lists like {x, x, y} and {x, y, y} are not checked. // So, checking item count for equality and checking all items in one list for existance in the other is enough. var playerDetailsEquality = PlayersDetails.Count() == other.PlayersDetails.Count() && PlayersDetails.All(other.PlayersDetails.Contains); var damageDetailsEquality = DamagesDetails.Count() == other.DamagesDetails.Count() && DamagesDetails.All(other.DamagesDetails.Contains); return(playerDetailsEquality && damageDetailsEquality); }
private void lbUsers_SelectionChanged(object sender, SelectionChangedEventArgs e) { btnPick.IsEnabled = true; var curItem = lbUsers.SelectedItem; if (curItem == null) // handling the case that nothing is selected { setTextBoxesToEmpty(); return; } string playername = (string)curItem; PlayersDetails playerDetails = getPlayerDetails(playername); setTextBoxesToPlayerData(playerDetails); if (playerDetails.status == USER_STATUS.PLAYING) { MessageBox.Show("Cant select this player because this player is in game"); btnPick.IsEnabled = false; } }