コード例 #1
0
        private void ReloadViewModel()
        {
            AchievementsOrdered.Clear();

            var achievements = Enumerable.Empty <Achievement>();

            if (achievementRepository != null)
            {
                achievements = achievementRepository.GetAchievements();
            }

            foreach (var category in achievements.AsCategories())
            {
                var sortedAchievements = category.Achievements
                                         .Where(a => IsUnlocked(achievements, a))
                                         .OrderByDescending(a => a.IsCompleted)
                                         .ThenByDescending(a => a.DateCompleted)
                                         .ThenBy(a => a.Name);

                AchievementsOrdered.Add(new AchievementsPerCategory(sortedAchievements)
                {
                    CategoryName = category.CategoryName,
                });
            }
        }
コード例 #2
0
        private void ReloadViewModel()
        {
            AchievementsOrdered.Clear();

            var achievements = Enumerable.Empty <Achievement>();

            if (achievementService != null)
            {
                achievements = achievementService.GetAllAchievements();
            }

            foreach (var category in achievements.AsCategories())
            {
                var sortedAchievements = category.Achievements
                                         .Where(a => IsUnlocked(achievements, a))
                                         .OrderByDescending(a => a.IsCompleted)
                                         .ThenByDescending(a => a.DateCompleted)
                                         .ThenBy(a => a.Name);

                if (sortedAchievements.Any())
                {
                    AchievementsOrdered.Add(new AchievementsPerCategory(sortedAchievements)
                    {
                        CategoryName = category.CategoryName,
                    });
                }
            }

            RaisePropertyChanged(OrderedAchievementsFieldName);
            RaisePropertyChanged(TotalCompletedFieldName);
            RaisePropertyChanged(PercentageCompletedFieldName);

            Messenger.Default.Send(new ResetAchievementsMessage());
        }
コード例 #3
0
        private void OnSelectedCultureChanged()
        {
            var settings = settingsRepository.GetSettings();

            settings.PreferredLocale = SelectedCulture.CultureKey;
            settingsRepository.SaveSettings(settings);

            var test  = CultureInfo.GetCultures(CultureTypes.UserCustomCulture);
            var test2 = CultureInfo.GetCultures(CultureTypes.ReplacementCultures);

            if (SelectedCulture.CultureKey == "en")
            {
                Resources.Culture = CultureInfo.InvariantCulture;
            }
            else
            {
                Resources.Culture = CultureInfo.GetCultureInfo(SelectedCulture.CultureKey);
            }

            AppResources.Instance.Resources = new Resources();

            foreach (var achievement in AchievementsOrdered.SelectMany(x => x))
            {
                achievementService.UpdateLocalization(achievement, Resources.Culture);
            }

            ReloadViewModel();
        }
コード例 #4
0
        private void AchievementContext_AchievementsUnlocked(object sender, AchievementsUnlockedEventArgs args)
        {
            foreach (var achievement in args.Achievements)
            {
                var category = AchievementsOrdered.FirstOrDefault(c => c.CategoryName == achievement.Category);
                if (category != null)
                {
                    category.Update(achievement);
                }
            }

            RaisePropertyChanged(OrderedAchievementsFieldName);
            RaisePropertyChanged(TotalCompletedFieldName);
            RaisePropertyChanged(PercentageCompletedFieldName);
        }
コード例 #5
0
        private void AchievementContext_AchievementsUnlocked(object sender, AchievementEventArgs args)
        {
            Application.Current.Dispatcher.BeginInvoke(new Action(() => notificationBox.ShowAchievements(args.UnlockedAchievements)));

            foreach (var achievement in args.UnlockedAchievements)
            {
                var currentAchievement = achievement;
                var category           = AchievementsOrdered.FirstOrDefault(c => c.CategoryName == currentAchievement.Category);
                if (category != null)
                {
                    category.Update(currentAchievement);
                }
            }

            RaisePropertyChanged(OrderedAchievementsFieldName);
            RaisePropertyChanged(TotalCompletedFieldName);
            RaisePropertyChanged(PercentageCompletedFieldName);
        }