/// <summary> /// Creates an instance of <see cref="ClassesViewModel"/> /// </summary> public ClassesViewModel(Compendium compendium, ClassSearchService classSearchService, ClassSearchInput classSearchInput, StringService stringService, DialogService dialogService, XMLImporter xmlImporter, XMLExporter xmlExporter, DataManager dataManager) { _compendium = compendium; _classSearchService = classSearchService; _classSearchInput = classSearchInput; _stringService = stringService; _dialogService = dialogService; _xmlImporter = xmlImporter; _xmlExporter = xmlExporter; _dataManager = dataManager; _selectClassCommand = new RelayCommand(obj => true, obj => SelectClass(obj as ClassListItemViewModel)); _editClassCommand = new RelayCommand(obj => true, obj => EditClass(obj as ClassViewModel)); _exportClassCommand = new RelayCommand(obj => true, obj => ExportClass(obj as ClassViewModel)); _cancelEditClassCommand = new RelayCommand(obj => true, obj => CancelEditClass()); _saveEditClassCommand = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditClass()); _resetFiltersCommand = new RelayCommand(obj => true, obj => InitializeSearch()); _addCommand = new RelayCommand(obj => true, obj => Add()); _copyCommand = new RelayCommand(obj => _selectedClass != null, obj => Copy()); _deleteCommand = new RelayCommand(obj => _selectedClass != null, obj => Delete()); _importCommand = new RelayCommand(obj => true, obj => Import()); _selectNextCommand = new RelayCommand(obj => true, obj => SelectNext()); _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious()); Search(); }
/// <summary> /// True if the search input applies to the model /// </summary> public bool SearchInputApplies(ClassSearchInput searchInput, ClassModel classModel) { return(HasSearchText(classModel, searchInput.SearchText) && HasAbility(classModel, searchInput.Ability.Key) && HasArmor(classModel, searchInput.Armor.Key) && HasWeapon(classModel, searchInput.Weapon.Key) && HasTool(classModel, searchInput.Tool.Key) && HasSkill(classModel, searchInput.Skill.Key)); }
/// <summary> /// Searches the compendium for classes matching the search input /// </summary> public List <ClassModel> Search(ClassSearchInput searchInput) { return(Sort(_compendium.Classes.Where(x => SearchInputApplies(searchInput, x)), searchInput.SortOption.Key)); }