private void NavigateLetter(string indexLetter) { if (indexLetter is null) { return; } _filter = PerformerFilters.FilterByFirstLetter; ActivateUpperPanel(false); IndexLetter = indexLetter; ActivateUpperPanel(true); }
/// <summary> /// Select performers whose name starts with string FirstLetter (or not a letter - "Other" case) /// </summary> private async Task SelectPerformersByFirstLetterAsync() { if (_filter != PerformerFilters.FilterByFirstLetter || _filterCriterion != IndexLetter) { _selectedPage = 0; _filter = PerformerFilters.FilterByFirstLetter; _filterCriterion = IndexLetter; } var performers = await _performerService.GetPerformersByFirstLetterAsync( IndexLetter, _selectedPage, PerformersPerPage); await FillPerformerViewModelsAsync(performers); }
/// <summary> /// Select performers whose name contains the search pattern PerformerPattern /// (specified in lower navigation panel) /// </summary> private async Task SelectPerformersByPatternAsync() { ActivateUpperPanel(false); if (_filter != PerformerFilters.FilterByPattern || _filterCriterion != PerformerPattern) { _selectedPage = 0; _filter = PerformerFilters.FilterByPattern; _filterCriterion = PerformerPattern; } var performers = await _performerService.GetPerformersBySubstringAsync( PerformerPattern, _selectedPage, PerformersPerPage); await FillPerformerViewModelsAsync(performers); }
public MainViewModel(IUnitOfWork unitOfWork, IPerformerService performerService, IAlbumService albumService, IRateCalculator rateCalculator) { Guard.AgainstNull(unitOfWork); Guard.AgainstNull(performerService); Guard.AgainstNull(albumService); Guard.AgainstNull(rateCalculator); _unitOfWork = unitOfWork; _performerService = performerService; _albumService = albumService; _rateCalculator = rateCalculator; // setting up all commands (quite a lot of them) GeneralViewCommand = new RelayCommand(() => { if (SelectedAlbum != null) { ViewSelectedAlbum(); } else { ViewSelectedPerformer(); } }); GeneralDeleteCommand = new RelayCommand(() => { if (SelectedAlbum != null) { RemoveSelectedAlbumAsync(); } else { RemoveSelectedPerformerAsync(); } }); GeneralEditCommand = new RelayCommand(() => { if (SelectedAlbum != null) { EditAlbum(); } else { EditPerformer(); } }); IndexLetterCommand = new RelayCommand(param => { _filter = PerformerFilters.FilterByFirstLetter; ActivateUpperPanel(false); IndexLetter = param.ToString(); ActivateUpperPanel(true); }); IndexPageCommand = new RelayCommand(NavigatePage); ViewPerformerCommand = new RelayCommand(ViewSelectedPerformer); EditPerformerCommand = new RelayCommand(EditPerformer); EditCountriesCommand = new RelayCommand(EditCountries); EditMusiciansCommand = new RelayCommand(() => { }); ViewAlbumCommand = new RelayCommand(ViewSelectedAlbum); EditAlbumCommand = new RelayCommand(EditAlbum); AddPerformerCommand = new RelayCommand(AddPerformerAsync); AddAlbumCommand = new RelayCommand(AddAlbumAsync); DeletePerformerCommand = new RelayCommand(RemoveSelectedPerformerAsync); DeleteAlbumCommand = new RelayCommand(RemoveSelectedAlbumAsync); BeginMoveAlbumCommand = new RelayCommand(BeginMoveAlbum); MoveAlbumCommand = new RelayCommand(MoveAlbum); PerformerSearchCommand = new RelayCommand(async() => await SelectPerformersByPatternAsync()); StartRadioCommand = new RelayCommand(async() => await StartRadioAsync()); StatsCommand = new RelayCommand(ShowStats); SettingsCommand = new RelayCommand(ShowSettings); HelpCommand = new RelayCommand(ShowHelp); // create navigation panel CreateUpperNavigationPanel(); // and select the initial set of performers (starting with "A") IndexLetter = "A"; }