protected void addButton_Click(object sender, EventArgs e) { if (!IsValid) { return; } Game game = new Game { Abbreviation = abbreviationTextBox.Text, Name = nameTextBox.Text }; using (SteamCommunityManager community = new SteamCommunityManager()) using (AchievementManager manager = new AchievementManager()) { manager.AddGame(game); IEnumerable <Achievement> achievements = community.GetAchievements(steamUserIdTextBox.Text, game); manager.AddAchievements(game.Id, achievements); } Response.Redirect("~/Admin"); }
public void GetAchievements() { IEnumerable <UserAchievement> achievements = _manager.GetAchievements("nullreference"); Assert.That(achievements.Any()); Assert.That(achievements.Any(a => a.Name == "Acid Reflex")); }
public void GetAchievements() { SteamCommunityManager manager = new SteamCommunityManager(); IEnumerable <Achievement> achievements = manager.GetAchievements("nullreference"); Assert.That(achievements.Any()); Assert.That(achievements.Any(a => a.Name == "Acid Reflex")); }
public void GetGameAchievements() { SteamCommunityManager manager = new SteamCommunityManager(); Game game = new Game { Id = 1, Name = "Left 4 Dead", Abbreviation = "l4d" }; IEnumerable <Achievement> achievements = manager.GetAchievements("nullreference", game); Assert.That(achievements.Any()); Assert.That(achievements.All(a => a.GameId == game.Id)); }
/// <summary> /// Serializes the achievements. /// </summary> /// <param name="steamUserId">The steam user id.</param> private static void SerializeAchievements(string steamUserId) { SteamCommunityManager manager = new SteamCommunityManager(new WebClientWrapper(), new SteamProfileXmlParser(), new GameXmlParser(), new AchievementXmlParser()); List <UserAchievement> achievements = manager.GetAchievements(steamUserId).ToList(); FileInfo dll = new FileInfo("SteamAchievements.Services.Tests"); DirectoryInfo bin = new DirectoryInfo(dll.Directory.FullName); string projectPath = bin.Parent.Parent.FullName; string serializedFilePath = Path.Combine(projectPath, "Serialized" + steamUserId + "Achievements.xml"); DataContractSerializer serializer = new DataContractSerializer(typeof(UserAchievement), new[] { typeof(List <UserAchievement>) }); using (FileStream writer = new FileStream(serializedFilePath, FileMode.Create)) { serializer.WriteObject(writer, achievements); } }
public void SerializeAchievements() { SteamCommunityManager manager = new SteamCommunityManager(); List <Services.Achievement> achievements = manager.GetAchievements("Unimatrixero").ToList(); FileInfo dll = new FileInfo("SteamAchievements.Services.Tests"); DirectoryInfo bin = new DirectoryInfo(dll.Directory.FullName); string projectPath = bin.Parent.Parent.FullName; string serializedFilePath = Path.Combine(projectPath, "SerializedUnimatrixeroAchievements.xml"); DataContractSerializer serializer = new DataContractSerializer(typeof(Services.Achievement), new[] { typeof(List <Services.Achievement>) }); using (FileStream writer = new FileStream(serializedFilePath, FileMode.Create)) { serializer.WriteObject(writer, achievements); } }
public void GetAchievements() { SteamCommunityManager manager = new SteamCommunityManager(); IEnumerable <Game> games = new[] { new Game { Id = 1, Name = "Left 4 Dead", Abbreviation = "l4d" }, new Game { Id = 2, Name = "Left 4 Dead 2", Abbreviation = "l4d2" } }; IEnumerable <Achievement> achievements = manager.GetAchievements("nullreference", games); Assert.That(achievements.Any()); Assert.That(achievements.SingleOrDefault(a => a.Name == "Acid Reflex"), Is.Not.Null); }
public void ApiNameMigration() { UserAchievement[] communityAchievements; Data.Achievement[] dataAchievements; using (SteamRepository repository = new SteamRepository()) { Dictionary <string, ICollection <UserAchievement> > userCommunityAchievements; using ( SteamCommunityManager communityManager = new SteamCommunityManager(new WebClientWrapper(), new SteamProfileXmlParser(), new GameXmlParser(), new AchievementXmlParser())) { string[] invalidUserProfiles = new[] { "0", "/zero_x9", "-vaka-", "inv4d3r", "barakitten", "76561198032315004", "120gb" }; var gameUsersQuery = from userAchievement in repository.UserAchievements where userAchievement.Achievement.ApiName.Length == 0 && !invalidUserProfiles.Contains(userAchievement.User.SteamUserId) group userAchievement by userAchievement.Achievement.GameId into g select new { GameId = g.Key, SteamUserId = g.Min(ua => ua.User.SteamUserId) }; Dictionary <int, string> gameUsers = gameUsersQuery.OrderBy(s => s.GameId) .ToDictionary(s => s.GameId, s => s.SteamUserId); Debug.WriteLine(String.Join(", ", gameUsers.Keys)); userCommunityAchievements = new Dictionary <string, ICollection <UserAchievement> >(); foreach (string user in gameUsers.Values.Distinct().OrderBy(v => v)) { try { ICollection <UserAchievement> userAchievements = communityManager.GetAchievements(user); userCommunityAchievements.Add(user, userAchievements); } catch (Exception ex) { Debug.WriteLine("GetAchievements failed for user " + user + "."); Debug.WriteLine(ex); if (ex.InnerException != null) { Debug.WriteLine(ex.InnerException); } } } } communityAchievements = userCommunityAchievements.Values.SelectMany(v => v.Select(ua => ua)).OrderBy(ua => ua.Game.Id) .OrderBy(ua => ua.AchievementApiName).Distinct().ToArray(); Serialize("CommunityAchievements.xml", communityAchievements); dataAchievements = repository.Achievements.ToArray(); foreach (Data.Achievement dataAchievement in dataAchievements) { UserAchievement achievement = communityAchievements .Where(a => a.Game.Id == dataAchievement.GameId && a.Name.ToUpper() == dataAchievement.Name.ToUpper() && a.Description.ToUpper() == dataAchievement.Description.ToUpper()) .FirstOrDefault(); if (achievement != null) { dataAchievement.ApiName = achievement.AchievementApiName; //Debug.WriteLine("Id: {0}, GameId: {1}, Name: {2}, ApiName: {3}", // dataAchievement.Id, dataAchievement.GameId, // dataAchievement.Name, dataAchievement.ApiName); } } Serialize("UpdatedApiNameAchievements.xml", dataAchievements.ToArray()); ChangeSet changeSet = repository.Context.GetChangeSet(); Debug.WriteLine(changeSet); repository.SubmitChanges(); } //Assert.That(changeSet.Updates, Is.Not.Empty); Debug.WriteLine("Total Data Achievements: " + dataAchievements.Length); Debug.WriteLine("Total Community Achievements: " + communityAchievements.Length); }