Пример #1
0
        /// <summary>
        /// Creates an instance of <see cref="CharactersViewModel"/>
        /// </summary>
        public CharactersViewModel(Compendium compendium, CharacterSearchService characterSearchService, CharacterSearchInput characterSearchInput, StringService stringService,
                                   StatService statService, DialogService dialogService, XMLImporter xmlImporter, XMLExporter xmlExporter, DocumentService documentService, DataManager dataManager)
        {
            _compendium             = compendium;
            _characterSearchService = characterSearchService;
            _characterSearchInput   = characterSearchInput;
            _stringService          = stringService;
            _statService            = statService;
            _dialogService          = dialogService;
            _xmlImporter            = xmlImporter;
            _xmlExporter            = xmlExporter;
            _documentService        = documentService;
            _dataManager            = dataManager;

            _selectCharacterCommand     = new RelayCommand(obj => true, obj => SelectCharacter(obj as CharacterListItemViewModel));
            _editCharacterCommand       = new RelayCommand(obj => true, obj => EditCharacter(obj as CharacterViewModel));
            _exportCharacterCommand     = new RelayCommand(obj => true, obj => ExportCharacter(obj as CharacterViewModel));
            _cancelEditCharacterCommand = new RelayCommand(obj => true, obj => CancelEditCharacter());
            _saveEditCharacterCommand   = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditCharacter());
            _resetFiltersCommand        = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand            = new RelayCommand(obj => true, obj => Add());
            _copyCommand           = new RelayCommand(obj => _selectedCharacter != null, obj => Copy());
            _deleteCommand         = new RelayCommand(obj => _selectedCharacter != null, obj => Delete());
            _importCommand         = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand     = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious());

            _selectInfoEditCommand        = new RelayCommand(obj => true, obj => SelectInfoEdit());
            _selectLevelsEditCommand      = new RelayCommand(obj => true, obj => SelectLevelsEdit());
            _selectAbilitiesEditCommand   = new RelayCommand(obj => true, obj => SelectAbilitiesEdit());
            _selectProficiencyEditCommand = new RelayCommand(obj => true, obj => SelectProficiencyEdit());

            _compendium.CharacterChanged += _compendium_CharacterChanged;

            Search();
        }
 /// <summary>
 /// True if the search input applies to the model
 /// </summary>
 public bool SearchInputApplies(CharacterSearchInput searchInput, CharacterModel characterModel)
 {
     return(HasSearchText(characterModel, searchInput.SearchText));
 }
 /// <summary>
 /// Searches for characteres matching the search input
 /// </summary>
 public List <CharacterModel> Search(CharacterSearchInput searchInput)
 {
     return(Sort(_compendium.Characters.Where(x => SearchInputApplies(searchInput, x)), searchInput.SortOption.Key));
 }