/// <summary> /// Creates an instance of <see cref="FeatsViewModel"/> /// </summary> public FeatsViewModel(Compendium compendium, FeatSearchService classSearchService, FeatSearchInput featSearchInput, StringService stringService, DialogService dialogService, XMLImporter xmlImporter, XMLExporter xmlExporter) { _compendium = compendium; _featSearchService = classSearchService; _featSearchInput = featSearchInput; _stringService = stringService; _dialogService = dialogService; _xmlImporter = xmlImporter; _xmlExporter = xmlExporter; _selectFeatCommand = new RelayCommand(obj => true, obj => SelectFeat(obj as FeatListItemViewModel)); _editFeatCommand = new RelayCommand(obj => true, obj => EditFeat(obj as FeatViewModel)); _exportFeatCommand = new RelayCommand(obj => true, obj => ExportFeat(obj as FeatViewModel)); _cancelEditFeatCommand = new RelayCommand(obj => true, obj => CancelEditFeat()); _saveEditFeatCommand = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditFeat()); _resetFiltersCommand = new RelayCommand(obj => true, obj => InitializeSearch()); _addCommand = new RelayCommand(obj => true, obj => Add()); _copyCommand = new RelayCommand(obj => _selectedFeat != null, obj => Copy()); _deleteCommand = new RelayCommand(obj => _selectedFeat != 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(FeatSearchInput searchInput, FeatModel featModel) { return(HasSearchText(featModel, searchInput.SearchText) && PrerequisiteMatches(featModel, searchInput.Prerequisite.Key)); }
/// <summary> /// Searches the compendium for feats matching the search input /// </summary> public List <FeatModel> Search(FeatSearchInput searchInput) { return(Sort(_compendium.Feats.Where(x => SearchInputApplies(searchInput, x)), searchInput.SortOption.Key)); }