private string generatePartlyName(string i_FriendName)
        {
            // this method generate a clue about the friend's name to guess
            // it return a string that represent a part of his name
            // ex: if his name is Yossi Cohen, a clue could be Y_ss_ C__en represting in string
            StringBuilder hintedName = new StringBuilder();
            List <int>    generatedIndices;

            for (int i = 0; i < i_FriendName.Length; i++)
            {
                if (i_FriendName[i] == ' ')
                {
                    hintedName.Append(" ");
                }
                else
                {
                    hintedName.Append("_");
                }
            }

            try
            {
                // generate a list of indices to expose random letter from the friend name
                generatedIndices = RandomNumbersGenerator.GenerateRandom(i_FriendName.Length / 2, 0, i_FriendName.Length - 1);
            }
            catch (ArgumentOutOfRangeException)
            {
                // a legal name on Facebook must include at least one character
                generatedIndices = new List <int>(0);
            }

            foreach (int index in generatedIndices)
            {
                hintedName[index] = i_FriendName[index];
            }

            return(hintedName.ToString());
        }
 public FacebookGuessMyNameFeature(User i_LoggedInUser)
 {
     LoggedInUser           = i_LoggedInUser;
     FriendsOfLoggedInUser  = i_LoggedInUser.Friends;
     RandomNumbersGenerator = new RandomNumbersGenerator();
 }