Esempio n. 1
0
        /// <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));
 }