private async void AddToSpoonacularMealPlan(ScheduledMeal meal, SpoonacularUserInfo userInfo) { RecipeAddToMealPlan recipe = new RecipeAddToMealPlan(); var savedRecipe = _context.SavedRecipes.Find(meal.SavedRecipeId); recipe.date = TimeTools.GetTimeStamp(meal.DateOfMeal.Value); recipe.slot = meal.Slot; recipe.type = "RECIPE"; recipe.value = new Value(); recipe.value.id = savedRecipe.SpoonacularRecipeId; recipe.value.imageType = "jpg"; recipe.value.title = savedRecipe.RecipeName; recipe.value.servings = GetPodCount(); // sets servings to the number of pod members (assuming enough food is needed for all planners) // look at giving the user the option to set serving amount (if they have kids, they'll need more) await _spoonacular.AddRecipeToMealPlan(recipe, userInfo); }
public async Task <string> AddRecipeToMealPlan(RecipeAddToMealPlan recipe, SpoonacularUserInfo userInfo) { string json = JsonConvert.SerializeObject(recipe); StringContent stringContent = new StringContent(json); string url = $"https://api.spoonacular.com/mealplanner/{userInfo.username}/items?apiKey={ApiKeys.Key}&hash={userInfo.hash}"; var response = await client.PostAsync(url, stringContent); if (response.IsSuccessStatusCode) { var responseString = await response.Content.ReadAsStringAsync(); return(await Task.FromResult(responseString)); } return(null); }
public ActionResult SavePlan(ScheduledMeal meal) { meal.Planned = true; _context.Update(meal); _context.SaveChanges(); if (meal.MealType == "Planned") { var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var planner = _context.Planners.Where(c => c.IdentityUserId == GetLoggedInUser()).SingleOrDefault(); SpoonacularUserInfo userInfo = new SpoonacularUserInfo { hash = planner.UserHash, username = planner.SpoonacularUserName }; AddToSpoonacularMealPlan(meal, userInfo); // add meal to Spoonacular API meal plan if it's a recipe } var mealPlan = _context.MealPlans.Find(meal.MealPlanId); return(RedirectToAction("ViewPendingMeals", mealPlan)); }