Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
 /// <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));
 }
Beispiel #3
0
 /// <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));
 }