예제 #1
0
        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;
                }
            }
        }
예제 #2
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);
        }