private void UpdateFilters() { var tanks = _allTanks.SelectMany(t => t).Select(t => t.Model); var anyClient = RepositoryManager.Instance.Repositories.OfType <LocalGameClient>().FirstOrDefault(); var repositories = RepositoryManager.Instance.Repositories.OrderBy(r => r.Version).ToArray(); var repositoryFilters = new ComboBoxItemVM <IRepository> [repositories.Length + 1]; repositoryFilters[0] = s_allRepositoriesVm; for (var i = 0; i < repositories.Length; ++i) { var repository = repositories[i]; repositoryFilters[i + 1] = new RepositoryComboBoxItemVM(repository); } this.RepositoryFilters = repositoryFilters; this.RaisePropertyChanged(() => this.SelectedRepositoryFilter); var tiers = tanks.Select(t => t.Tier).Distinct().OrderBy(t => t).ToArray(); var tierFilters = new ComboBoxItemVM <int> [tiers.Length + 1]; tierFilters[0] = s_allTiersVm; for (var i = 0; i < tiers.Length; ++i) { var tier = tiers[i]; tierFilters[i + 1] = new ComboBoxItemVM <int>(tier, RomanNumberService.GetRomanNumber(tier), null); } this.TierFilters = tierFilters; this.RaisePropertyChanged(() => this.SelectedTierFilter); var classKeys = tanks.Select(t => t.ClassKey).Distinct().OrderBy(TankClassComparer.GetClassSortIndex).ToArray(); var classFilters = new ComboBoxItemVM <string> [classKeys.Length + 1]; classFilters[0] = s_allClassesVm; for (var i = 0; i < classKeys.Length; ++i) { var classKey = classKeys[i]; classFilters[i + 1] = new ComboBoxItemVM <string>(classKey, this.GetCompositeLocalization(r => r.GetLocalizedClassName(classKey)), anyClient == null ? null : anyClient.PackageImages.GetClassSmallIcon(classKey)); } this.ClassFilters = classFilters; this.RaisePropertyChanged(() => this.SelectedClassFilter); var nations = tanks.Select(t => t.NationKey).Distinct().OrderBy(n => n).ToArray(); var nationFilters = new ComboBoxItemVM <string> [nations.Length + 1]; nationFilters[0] = s_allNationsVm; for (var i = 0; i < nations.Length; ++i) { var @nation = nations[i]; nationFilters[i + 1] = new ComboBoxItemVM <string>(@nation, this.GetCompositeLocalization(r => r.GetLocalizedNationName(@nation)), anyClient == null ? null : anyClient.PackageImages.GetNationSmallIcon(@nation)); } this.NationFilters = nationFilters; this.RaisePropertyChanged(() => this.SelectedNationFilter); }
private void ResetFilters() { _isInitializingFilters = true; this.SelectedClassFilter = s_allClassesVm; this.SelectedNationFilter = s_allNationsVm; this.SelectedRepositoryFilter = s_allRepositoriesVm; this.SelectedPremiumFilter = s_bothPremiumVm; this.SelectedTierFilter = s_allTiersVm; _isInitializingFilters = false; this.FilterTanks(); }