private void SyncSteamAchievementStatuses(AchievementsSaveData data) { foreach (var achievement in this.achievementRepository.FindAll()) { var status = data.AchievementStatuses.FirstOrDefault(s => s.AchievementId == achievement.Id); if (status == null) { status = new AchievementStatusData { AchievementId = achievement.Id }; data.AchievementStatuses.Add(status); } SteamUserStats.GetAchievementAndUnlockTime( achievement.SteamApiKey, out var isUnlocked, out var unlockedAt); if (isUnlocked) { status.Quantity = achievement.RequiredQuantity; status.IsUnlocked = true; status.UnlockedAt = unlockedAt; } else { status.Quantity = 0; status.IsUnlocked = false; status.UnlockedAt = 0; } } }
private AchievementStatusData GetOrCreateAchievementStatus(int achievementId) { var achievementStatus = this.data.AchievementStatuses .FirstOrDefault(data => data.AchievementId == achievementId); if (achievementStatus != null) { return(achievementStatus); } achievementStatus = new AchievementStatusData { AchievementId = achievementId }; this.data.AchievementStatuses.Add(achievementStatus); return(achievementStatus); }