/// <summary> /// Creates an instance of <see cref="NPCsViewModel"/> /// </summary> public NPCsViewModel(Compendium compendium, NPCSearchService npcSearchService, NPCSearchInput npcSearchInput, StringService stringService, DialogService dialogService, XMLImporter xmlImporter, DocumentService documentService, DataManager dataManager) { _compendium = compendium; _npcSearchService = npcSearchService; _npcSearchInput = npcSearchInput; _stringService = stringService; _dialogService = dialogService; _xmlImporter = xmlImporter; _documentService = documentService; _dataManager = dataManager; _selectNPCCommand = new RelayCommand(obj => true, obj => SelectNPC(obj as ListItemViewModel <NPCModel>)); _editNPCCommand = new RelayCommand(obj => true, obj => EditNPC(obj as NPCViewModel)); _exportNPCCommand = new RelayCommand(obj => true, obj => ExportNPC(obj as NPCViewModel)); _cancelEditNPCCommand = new RelayCommand(obj => true, obj => CancelEditNPC()); _saveEditNPCCommand = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditNPC()); _resetFiltersCommand = new RelayCommand(obj => true, obj => InitializeSearch()); _addCommand = new RelayCommand(obj => true, obj => Add()); _copyCommand = new RelayCommand(obj => _selectedNPC != null, obj => Copy()); _deleteCommand = new RelayCommand(obj => _selectedNPC != 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(NPCSearchInput searchInput, NPCModel npcModel) { return(HasSearchText(npcModel, searchInput.SearchText) && HasTag(npcModel, searchInput.Tag.Key)); }
/// <summary> /// Searches the compendium for npcs matching the search input /// </summary> public List <NPCModel> Search(NPCSearchInput searchInput) { return(Sort(_compendium.NPCs.Where(x => SearchInputApplies(searchInput, x)), searchInput.SortOption.Key)); }