Esempio n. 1
0
        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);
        }
Esempio n. 5
0
        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;
            }
        }