Example #1
0
        async void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            if (e == null || ((ListView)sender).SelectedItem == null)
            {
                return;                                                       // has been set to null, do not 'process' tapped event
            }
            Recipe recipe  = (Recipe)e.SelectedItem;
            var    builder = new UriBuilder("https://www.food2fork.com/api/get");
            var    query   = HttpUtility.ParseQueryString(builder.Query);

            query["key"]  = "d5a99efcee2509c99b3c350ac2c08f7b";
            query["rId"]  = recipe.recipe_id;
            builder.Query = query.ToString();
            Debug.Write(builder.Uri);
            HttpClient httpClient = new HttpClient();
            var        response   = httpClient.GetAsync(builder.Uri).Result;

            string       content = response.Content.ReadAsStringAsync().Result;
            RecipeDetail detail  = JsonConvert.DeserializeObject <RecipeDetail>(content);
            await Navigation.PushAsync(new RecipePage(detail));

            ((ListView)sender).SelectedItem = null;

            /*
             * Recipe recipe = (Recipe)e.SelectedItem;
             * Uri uri = new Uri(recipe.source_url);
             * Device.OpenUri(uri);
             * ((ListView)sender).SelectedItem = null; // de-select the row
             */
        }
 public RecipePage(RecipeDetail recipe)
 {
     InitializeComponent();
     Debug.WriteLine(recipe.recipe.title);
     for (int i = 0; i < recipe.recipe.ingredients.Count; i++)
     {
         recipe.recipe.ingredients[i] = HttpUtility.HtmlDecode(recipe.recipe.ingredients[i]);
     }
     image_url.Source     = recipe.recipe.image_url;
     listView.ItemsSource = recipe.recipe.ingredients;
 }