public ConditionsViewModel(Compendium compendium, ConditionSearchService conditionSearchService, ConditionSearchInput conditionSearchInput, StringService stringService, DialogService dialogService, XMLImporter xmlImporter, XMLExporter xmlExporter) { _compendium = compendium; _conditionSearchService = conditionSearchService; _conditionSearchInput = conditionSearchInput; _stringService = stringService; _dialogService = dialogService; _xmlImporter = xmlImporter; _xmlExporter = xmlExporter; _selectConditionCommand = new RelayCommand(obj => true, obj => SelectCondition(obj as ConditionListItemViewModel)); _editConditionCommand = new RelayCommand(obj => true, obj => EditCondition(obj as ConditionViewModel)); _exportConditionCommand = new RelayCommand(obj => true, obj => ExportCondition(obj as ConditionViewModel)); _cancelEditConditionCommand = new RelayCommand(obj => true, obj => CancelEditCondition()); _saveEditConditionCommand = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditCondition()); _resetFiltersCommand = new RelayCommand(obj => true, obj => InitializeSearch()); _addCommand = new RelayCommand(obj => true, obj => Add()); _copyCommand = new RelayCommand(obj => _selectedCondition != null, obj => Copy()); _deleteCommand = new RelayCommand(obj => _selectedCondition != 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(ConditionSearchInput searchInput, ConditionModel conditionModel) { return(HasSearchText(conditionModel, searchInput.SearchText)); }
/// <summary> /// Searches the compendium for conditions matching the search input /// </summary> public List <ConditionModel> Search(ConditionSearchInput searchInput) { return(Sort(_compendium.Conditions.Where(x => SearchInputApplies(searchInput, x)), searchInput.SortOption)); }