Пример #1
0
        /// <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);
        }
Пример #2
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
            };
        }