コード例 #1
0
        private void NavigateLetter(string indexLetter)
        {
            if (indexLetter is null)
            {
                return;
            }

            _filter = PerformerFilters.FilterByFirstLetter;
            ActivateUpperPanel(false);
            IndexLetter = indexLetter;
            ActivateUpperPanel(true);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        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";
        }