/// <summary>
        /// Executes the command
        /// </summary>
        /// <param name="parameter">Command parameter</param>
        public async override void Execute(object parameter)
        {
            if (!this._isFindAvailable)
            {
                return;
            }

            this._isFindAvailable = false;
            this._viewModel.SetVisibilities(Visibility.Visible, true);

            var dictionary = App.Current.Resources;

            try
            {
                var response = await this.ExecuteAsync((string)parameter);

                if (!response.IsSuccessStatusCode)
                {
                    RecipeMessageBox.Show((string)dictionary["recipe_find_fail"]);
                    return;
                }

                var recipe = response.Content;

                var loadService = new LoadRecipesService();

                this._viewModel.Recipe = new ObservableCollection <Models.Recipe>();
                this._viewModel.Recipe.Add(await loadService.Map(recipe));

                this._viewModel.HistoryItems = this.Map(this._viewModel.Recipe.First());
            }
            catch
            {
                RecipeMessageBox.Show((string)dictionary["recipe_find_fail"]);
            }
            finally
            {
                this._isFindAvailable = true;
                this._viewModel.SetVisibilities(Visibility.Collapsed, false);
            }
        }
示例#2
0
 private async void RecipesButton_Click(object sender, RoutedEventArgs e)
 {
     this._navigationService.Navigate(ref this._recipes);
     var loadRecipesService = new LoadRecipesService(this._recipes.ViewModel);
     await loadRecipesService.Load();
 }