/// <summary> /// Creates an instance of <see cref="EncountersViewModel"/> /// </summary> public EncountersViewModel(Compendium compendium, EncounterSearchService encounterSearchService, EncounterSearchInput encounterSearchInput, StringService stringService, DialogService dialogService, XMLImporter xmlImporter, DocumentService documentService, DataManager dataManager) { _compendium = compendium; _encounterSearchService = encounterSearchService; _encounterSearchInput = encounterSearchInput; _stringService = stringService; _dialogService = dialogService; _xmlImporter = xmlImporter; _documentService = documentService; _dataManager = dataManager; _selectEncounterCommand = new RelayCommand(obj => true, obj => SelectEncounter(obj as EncounterListItemViewModel)); _editEncounterCommand = new RelayCommand(obj => true, obj => EditEncounter(obj as EncounterViewModel)); _exportEncounterCommand = new RelayCommand(obj => true, obj => ExportEncounter(obj as EncounterViewModel)); _cancelEditEncounterCommand = new RelayCommand(obj => true, obj => CancelEditEncounter()); _saveEditEncounterCommand = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditEncounter()); _resetFiltersCommand = new RelayCommand(obj => true, obj => InitializeSearch()); _addCommand = new RelayCommand(obj => true, obj => Add()); _copyCommand = new RelayCommand(obj => _selectedEncounter != null, obj => Copy()); _deleteCommand = new RelayCommand(obj => _selectedEncounter != null, obj => Delete()); _importCommand = new RelayCommand(obj => true, obj => Import()); _selectNextCommand = new RelayCommand(obj => true, obj => SelectNext()); _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious()); _compendium.CharacterChanged += _compendium_CharacterChanged; _compendium.EncounterChanged += _compendium_EncounterChanged; Search(); }
/// <summary> /// True if the search input applies to the model /// </summary> public bool SearchInputApplies(EncounterSearchInput searchInput, EncounterModel encounterModel) { return(HasSearchText(encounterModel, searchInput.SearchText)); }
/// <summary> /// Searches for encounters matching the search input /// </summary> public List <EncounterModel> Search(EncounterSearchInput searchInput) { return(Sort(_compendium.Encounters.Where(x => SearchInputApplies(searchInput, x)), searchInput.SortOption)); }