private static void ProcessEarnedAchievements(IAsyncResult result) { EarnedAchievementsData earnedAchievementsData = (EarnedAchievementsData)result.AsyncState; BitArray bitArray = new BitArray(39); try { AchievementCollection achievementCollection = earnedAchievementsData.Gamer.EndGetAchievements(result); Type typeFromHandle = typeof(Achievement); foreach (Microsoft.Xna.Framework.GamerServices.Achievement item in achievementCollection) { int num = -1; try { num = (int)Enum.Parse(typeFromHandle, item.Key, ignoreCase: false); } catch (ArgumentException) { continue; } bitArray.Set(num, item.IsEarned); } } catch { } earnedAchievementsData.Callback(bitArray); }
public void GetEarnedAchievements(SignedInGamer gamer, EarnedAchievementsCallback callback) { EarnedAchievementsData earnedAchievementsData = new EarnedAchievementsData(); earnedAchievementsData.Callback = callback; earnedAchievementsData.Gamer = gamer; EarnedAchievementsData asyncState = earnedAchievementsData; gamer.BeginGetAchievements(ProcessEarnedAchievements, asyncState); }