// Navigate to detail page with existing joke object
        private async Task SelectJoke(JokeViewModel joke)
        {
            if (joke == null)
            {
                return;
            }

            SelectedJoke = null;
            await _pageService.PushAsync(new JokeDetailPage(joke));
        }
        // Delete selected joke
        private async Task DeleteJoke(JokeViewModel jokeViewModel)
        {
            if (await _pageService.DisplayConfirm("Warning", $"Are you sure?", "Yes", "No"))
            {
                Jokes.Remove(jokeViewModel);

                var joke = await _jokeStore.GetJokeAsync(jokeViewModel.Id);

                await _jokeStore.DeleteJokeAsync(joke);
            }
        }
示例#3
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="viewModel">The JokeViewModel</param>
        /// <param name="jokeStore">The JokeStore</param>
        /// <param name="pageService">The Page Service</param>
        public JokeDetailViewModel(JokeViewModel viewModel, IJokeStore jokeStore, IPageService pageService)
        {
            if (viewModel == null)
            {
                throw new ArgumentNullException(nameof(viewModel));
            }

            _pageService = pageService;
            _jokeStore   = jokeStore;

            // Define commands
            SaveCommand = new Command(async() => await Save());

            Joke = new Joke
            {
                Id   = viewModel.Id,
                Text = viewModel.Text,
                Date = viewModel.Date
            };
        }