/// <summary> /// Constructor /// </summary> /// <param name="jokeStore">The JokeStore</param> /// <param name="pageService">The PageService</param> public JokesPageViewModel(IJokeStore jokeStore, IPageService pageService) { _jokeStore = jokeStore; _pageService = pageService; // Set up commands LoadDataCommand = new Command(async() => await LoadData()); AddJokeCommand = new Command(async() => await AddJoke()); SelectJokeCommand = new Command <JokeViewModel>(async c => await SelectJoke(c)); DeleteJokeCommand = new Command <JokeViewModel>(async c => await DeleteJoke(c)); // Subscribe to events MessagingCenter.Subscribe <JokeDetailViewModel, Joke>(this, Events.JokeAdded, OnJokeAdded); MessagingCenter.Subscribe <JokeDetailViewModel, Joke>(this, Events.JokeUpdated, OnJokeUpdated); MessagingCenter.Subscribe <JokeOfTheDayViewModel, Joke>(this, Events.JokeAdded, OnJOTDJokeAdded); }
/// <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 }; }