public static void Save(Action done) { const string section = "PTestAchievements.Save"; Console.WriteLine (section); var achievement = new PlayerAchievement { {"achievement", "Super Mega Achievement #1"}, {"achievementkey", "secretkey"}, {"playerid", rnd.ToString()}, {"playername", "a random name " + rnd}, {"fields", new Hashtable { {"rnd", rnd } }} }; Playtomic.Achievements.Save(achievement, r => { AssertTrue(section + "#1", "Request succeeded", r.success); AssertEquals(section + "#1", "No errorcode", r.errorcode, 0); // second save gets rejected Playtomic.Achievements.Save(achievement, r2 => { AssertFalse(section + "#2", "Request failed", r2.success); AssertEquals(section + "#2", "Already had achievement errorcode", r2.errorcode, 505); // third save overwrites the first achievement.overwrite = true; Playtomic.Achievements.Save(achievement, r3 => { AssertTrue(section + "#3", "Request succeeded", r3.success); AssertEquals(section + "#3", "Already had achievement errorcode", r3.errorcode, 506); // fourth saves with allow duplicates achievement.allowduplicates = true; achievement.Remove("overwrite"); Playtomic.Achievements.Save(achievement, r4 => { AssertTrue(section + "#4", "Request succeeded", r4.success); AssertEquals(section + "#4", "Already had achievement errorcode", r4.errorcode, 506); done(); }); }); }); }); }