private void DefinitionsThreadStart()
        {
            if (WrenCore.IsOffline)
                return;

            var settings = _settingsManager.LoadSettings<AchievementSettings>(EmulationContext.Empty);
            var newDefinitions = _achievementsService.GetAchievementDefinitions(settings.DefinitionsLastSynchronized);

            try
            {
                foreach (var dto in newDefinitions.Definitions)
                {
                    AchievementDefinition ad = new AchievementDefinition()
                    {
                        Code = dto.Code,
                        Id = dto.Id,
                        Description = dto.Description,
                        LockedImageUrl = dto.LockedImageUrl,
                        LongDisplayFormat = dto.LongDisplayFormat,
                        RomMd5 = dto.RomMd5,
                        ShortDisplayFormat = dto.ShortDisplayFormat,
                        UnlockedImageUrl = dto.UnlockedImageUrl,
                        Title = dto.Title
                    };

                    _persistenceManager.Save(ad.Id, AchievementsModule.AchievementsPersistenceProviderKey, ad);
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException("There was an error updating local achievement definition database.", ex);
            }

            settings.DefinitionsLastSynchronized = newDefinitions.UpdateTimestamp;
            _settingsManager.ApplySettings(settings);
        }
Example #2
0
 public Achievement(AchievementDefinition definition, AchievementState state)
 {
     _definition = definition;
     _state = state;
 }