Ejemplo n.º 1
0
        // GET: DietPlan/Edit/5
        public ActionResult Edit(int id)
        {
            var user      = GetUser();
            var dietPlan  = db.DietPlans.SingleOrDefault(c => c.Id == id);
            var viewModel = new UserDietViewModel
            {
                AppUser  = user,
                DietPlan = dietPlan
            };

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        //Need to work - get recipe chart on number of meals entered
        public async Task <DietPlan> GetDietPlan(UserDietViewModel viewModel)
        {
            var dietPlan = viewModel.DietPlan;

            try
            {
                string API  = "788ab6dbaea061d5952f619dbf8feb51";
                var    user = viewModel.AppUser;
                //var nutrients = viewModel.Nutrients;
                var             preferenceString = CreateLabelString(viewModel.DietPreferences);
                var             healthString     = CreateHealthString(viewModel.HealthLabels);
                var             nutrientString   = CreateNutrientString(viewModel.Nutrient);
                int             totalMeals       = dietPlan.NumberOfMeals;
                List <Nutrient> totalNutrients   = db.Nutrients.ToList();
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("https://api.edamam.com");
                    Recipe recipe   = new Recipe();
                    var    response = new HttpResponseMessage();
                    if (viewModel.Nutrient == null)
                    {
                        response = await client.GetAsync($"search?q=&app_id=6f52fd65&app_key={API}&diet={preferenceString}&health={healthString}");
                    }
                    else
                    {
                        response = await client.GetAsync($"search?q=&app_id=6f52fd65&app_key={API}&diet={preferenceString}&health={healthString}&nutrients{nutrientString}");
                    }
                    response.EnsureSuccessStatusCode();
                    var stringResult = await response.Content.ReadAsStringAsync();

                    var json = JObject.Parse(stringResult);
                    recipe.DietPlanId = dietPlan.Id;
                    for (int i = 0; i < totalMeals; i++)
                    {
                        recipe.Name     = json["hits"][i]["recipe"]["label"].ToString();
                        recipe.Calories = Double.Parse(json["hits"][i]["recipe"]["calories"].ToString());
                        recipe.Calories = Math.Round(recipe.Calories, 2);
                        recipe.Image    = json["hits"][i]["recipe"]["image"].ToString();
                        recipe.Uri      = json["hits"][i]["recipe"]["uri"].ToString();
                        db.Recipes.Add(recipe);
                        db.SaveChanges();
                        // totalCals += recipe.Calories;
                    }
                    return(dietPlan);
                }
            }
            catch (IndexOutOfRangeException)
            {
                return(dietPlan);
            }
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Create(UserDietViewModel viewModel)
        {
            try
            {
                var user     = GetUser();
                var dietPlan = new DietPlan();
                dietPlan.Name          = viewModel.DietPlan.Name;
                dietPlan.NumberOfMeals = viewModel.DietPlan.NumberOfMeals;
                dietPlan.TotalCalories = viewModel.DietPlan.TotalCalories;
                dietPlan.AppUserId     = user.Id;
                db.DietPlans.Add(dietPlan);
                var dietPreferencesList = db.DietPreferences.Where(c => c.IsSelected == true).Select(c => c.Name).ToList();
                var healthLabelsList    = db.HealthLabels.Where(d => d.IsSelected == true).Select(c => c.Name).ToList();
                var nutrient            = db.Nutrients.Single(n => n.Min != 0 || n.Max != 0);
                nutrient.DietPlanId = dietPlan.Id;

                var model = new UserDietViewModel
                {
                    AppUser         = user,
                    DietPlan        = dietPlan,
                    DietPreferences = dietPreferencesList,
                    HealthLabels    = healthLabelsList,
                    Nutrient        = nutrient
                };
                db.SaveChanges();
                var plan = await GetDietPlan(model);

                var meals     = db.Recipes.Where(c => c.DietPlanId == plan.Id).ToList();
                var dietModel = new DietPlanViewModel
                {
                    DietPlan = plan,
                    Meals    = meals,
                    Nutrient = nutrient
                };
                return(View("ViewPlan", dietModel));
            }
            catch
            {
                return(View());
            }
        }
Ejemplo n.º 4
0
        public ActionResult Edit(UserDietViewModel viewModel)
        {
            try
            {
                var dietPlan = db.DietPlans.SingleOrDefault(c => c.Id == viewModel.DietPlan.Id);
                dietPlan.Name          = viewModel.DietPlan.Name;
                dietPlan.NumberOfMeals = viewModel.DietPlan.NumberOfMeals;
                dietPlan.TotalCalories = viewModel.DietPlan.TotalCalories;
                var user = GetUser();
                viewModel.AppUser = user;
                //PUT LOGIC TO UPDATE DIET PLAN
                //API CALL IF PREF CHANGED, MEALS CHANGED
                db.SaveChanges();

                var dietPlans = RetrievePlan(user);
                return(RedirectToAction("Index", "AppUser", dietPlans));
            }
            catch
            {
                return(View());
            }
        }