示例#1
0
        private void WireCommands()
        {
            TrailerPageLoaded = new RelayCommand(async() =>
            {
                if (_navigationService.IsNetworkAvailable && !_dataLoaded)
                {
                    SetProgressBar("Getting trailer details...");

                    try
                    {
                        Log.Info("Getting information for trailer [{0}] ({1})", SelectedTrailer.Name, SelectedTrailer.Id);

                        SelectedTrailer = await _apiClient.GetItemAsync(SelectedTrailer.Id, AuthenticationService.Current.LoggedInUser.Id);

                        CastAndCrew = Utils.GroupCastAndCrew(SelectedTrailer.People);

                        _dataLoaded = true;
                    }
                    catch (HttpException ex)
                    {
                        Log.ErrorException("TrailerPageLoaded", ex);

                        App.ShowMessage("Unable to get the trailer information.");
                    }

                    SetProgressBar();
                }
            });
        }
        private async Task GetItemDetails()
        {
            if (!_navigationService.IsNetworkAvailable || _dataLoaded || SelectedItem == null)
            {
                return;
            }

            var item = await _apiClient.GetItemAsync(SelectedItem.Id, AuthenticationService.Current.LoggedInUserId);

            SelectedItem = item;
        }
        private async Task GetArtistInfo()
        {
            try
            {
                Log.Info("Getting information for Artist [{0}] ({1})", SelectedArtist.Name, SelectedArtist.Id);

                var artistQuery = new ArtistsQuery
                {
                };
                SelectedArtist = await _apiClient.GetItemAsync(SelectedArtist.Id, AuthenticationService.Current.LoggedInUser.Id);
            }
            catch (HttpException ex)
            {
                Log.ErrorException("GetArtistInfo()", ex);
            }

            _gotAlbums = await GetAlbums();

            await GetArtistTracks();

            await SortTracks();
        }
示例#4
0
        private async Task <bool> GetMovieDetails()
        {
            bool result;

            try
            {
                Log.Info("Getting details for movie [{0}] ({1})", SelectedMovie.Name, SelectedMovie.Id);

                var item = await _apiClient.GetItemAsync(SelectedMovie.Id, AuthenticationService.Current.LoggedInUser.Id);

                SelectedMovie = item;
                CastAndCrew   = Utils.GroupCastAndCrew(item.People);
                result        = true;
            }
            catch (HttpException ex)
            {
                Log.ErrorException("GetMovieDetails()", ex);

                App.ShowMessage(AppResources.ErrorGettingExtraInfo);
                result = false;
            }

            return(result);
        }
        private void WireCommands()
        {
            TvSeriesPageLoaded = new RelayCommand(async() =>
            {
                DummyFolder = new BaseItemDto
                {
                    Type = "folder",
                    Name = string.Format(AppResources.TvShowRecentItemsTitle, SelectedTvSeries.Name.ToLower()),
                    Id   = SelectedTvSeries.Id
                };

                if (_navService.IsNetworkAvailable && !ShowDataLoaded)
                {
                    if (SelectedTvSeries != null)
                    {
                        SetProgressBar(AppResources.SysTrayGettingShowInformation);

                        try
                        {
                            Log.Info("Getting information for TV Series [{0}] ({1})", SelectedTvSeries.Name, SelectedTvSeries.Id);

                            SelectedTvSeries = await _apiClient.GetItemAsync(SelectedTvSeries.Id, AuthenticationService.Current.LoggedInUser.Id);
                            CastAndCrew      = Utils.GroupCastAndCrew(SelectedTvSeries.People);
                        }
                        catch (HttpException ex)
                        {
                            Log.ErrorException("TvSeriesPageLoaded", ex);
                        }

                        bool seasonsLoaded = await GetSeasons();

                        SetProgressBar(AppResources.SysTrayGettingRecentItems);

                        bool recentItems = await GetRecentItems().ConfigureAwait(true);

                        SetProgressBar();
                        ShowDataLoaded = (seasonsLoaded && recentItems);
                    }
                }
            });

            SeasonPageLoaded = new RelayCommand(async() =>
            {
                if (_navService.IsNetworkAvailable && !SeasonDataLoaded)
                {
                    if (SelectedSeason != null)
                    {
                        SetProgressBar(AppResources.SysTrayGettingEpisodes);

                        SeasonDataLoaded = await GetEpisodes();

                        SetProgressBar();
                    }
                }
            });

            EpisodePageLoaded = new RelayCommand(async() =>
            {
            });

            NextEpisodeCommand = new RelayCommand(() =>
            {
                SelectedEpisode = SelectedEpisode.IndexNumber + 1 > Episodes.Count ? Episodes[0] : Episodes[SelectedEpisode.IndexNumber.Value];
            });

            PreviousEpisodeCommand = new RelayCommand(() =>
            {
                SelectedEpisode = SelectedEpisode.IndexNumber - 1 == 0 ? Episodes[Episodes.Count - 1] : Episodes[SelectedEpisode.IndexNumber.Value - 2];
            });

            AddRemoveFavouriteCommand = new RelayCommand <BaseItemDto>(async item =>
            {
                try
                {
                    SetProgressBar(AppResources.SysTrayAddingToFavourites);

                    CanUpdateFavourites = false;

                    item.UserData = await _apiClient.UpdateFavoriteStatusAsync(item.Id, AuthenticationService.Current.LoggedInUser.Id, !item.UserData.IsFavorite);
                }
                catch (HttpException ex)
                {
                    Log.ErrorException("AddRemoveFavouriteCommand (TV)", ex);
                    App.ShowMessage("Error making your changes");
                }

                SetProgressBar();

                CanUpdateFavourites = true;
            });

            NavigateTo = new RelayCommand <BaseItemDto>(_navService.NavigateTo);
        }