public async Task PromptNextEpisode()
        {
            if (PlaybackViewParameters.Playlist.Any())
            {
                IUnityContainer container = Globals.Instance.Container;
                PlaybackConfirmationViewModel confirmationVm =
                    container.Resolve <PlaybackConfirmationViewModel>();

                var pvpm = new PlaybackViewParameterModel
                {
                    SelectedMediaElement  = SelectedMediaElement,
                    IsJustFinishedPlaying = true,
                    Playlist = PlaybackViewParameters.Playlist
                };

                NavigationService.GoBack();
                confirmationVm.PlaybackViewParametersChanged(pvpm);
            }
            else
            {
                Return();
            }
        }
        public async Task PlaybackViewParametersChanged(PlaybackViewParameterModel p)
        {
            _logManager.LogDebug($"Playback View Parameters Changed raised, obj = {p}");

            // Does it come from movie / episode chooser?
            if (!p.IsJustFinishedPlaying)
            {
                IsLoading = true;

                _logManager.LogDebug($"{p.SelectedMediaElement}, It comes from movie/epi chooser.");
                IsShowConfirmation = false;

                SelectedMediaElement = p.SelectedMediaElement;
                if (SelectedMediaElement.PlaybackPosition.TotalMinutes > 2 &&
                    SelectedMediaElement.PlaybackRemaining.TotalMinutes < 2)
                {
                    // Let the user decide what they want, aka let the view model
                    // render fully and show the action buttons
                    IsLoading = false;
                }
                else if (SelectedMediaElement.PlaybackPosition.TotalMinutes <= 2)
                {
                    _logManager.LogDebug($"{p.SelectedMediaElement}, playback position total less than 2min.");
                    PlayFromBeginning();
                }
                else if (SelectedMediaElement.PlaybackRemaining.TotalMinutes <= 2)
                {
                    _logManager.LogDebug($"{p.SelectedMediaElement}, playback remaining total less than 2min.");
                    PlayFromBeginning();
                }
            }
            else
            {
                // go to the next element on the playlist, then play that from the beginning.
                SelectedMediaElement = PlaybackViewParameters.SelectedMediaElement;
                if (PlaybackViewParameters.Playlist.Length >= 2)
                {
                    _logManager.LogDebug(
                        $"{p.SelectedMediaElement}, go to the next element on the playlist, then play that from the beginning.");

                    NextMediaElement = PlaybackViewParameters.Playlist[0];
                    PlaybackViewParameters.Playlist = PlaybackViewParameters.Playlist.Skip(1).ToArray();

                    IsLoading          = false;
                    IsShowConfirmation = true;

                    AutoPlayNextTimeLeft = 20;
                    _autoPlaybackTimer.Start();
                    IsTimerVisible = true;
                }
                else
                {
                    IsLoading = false;
                    _logManager.LogDebug("No next element, navigating back twice.");

                    // As it comes from the playback, we should navigate back two times
                    NavigationService.GoBack();
                    NavigationService.GoBack();
                }
            }
        }