コード例 #1
0
ファイル: DietHelper.cs プロジェクト: lulzzz/DietPlanner
        public static string Code(this DailyDiet dailyDiet)
        {
            var stringBuilder = new StringBuilder();

            dailyDiet.Meals.ForEach(m => stringBuilder.Append(m.Code()));

            return(stringBuilder.ToString());
        }
コード例 #2
0
        public static DailyDiet CopyDailyDiet(DailyDiet dailyDiet)
        {
            var copy = new DailyDiet();

            dailyDiet.Meals.ForEach(meal => copy.Meals.Add(CopyMeal(meal)));

            return(copy);
        }
コード例 #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            DailyDiet dailydiet = ddb.DailyDiet.Find(id);

            ddb.DailyDiet.Remove(dailydiet);
            ddb.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #4
0
 public ActionResult Edit(DailyDiet dailydiet)
 {
     if (ModelState.IsValid)
     {
         ddb.Entry(dailydiet).State = EntityState.Modified;
         ddb.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(dailydiet));
 }
コード例 #5
0
        public DietSummary SummarizeDaily(DailyDiet diet)
        {
            var dietSummary = new DietSummary();

            foreach (var meal in diet.Meals)
            {
                AddMealSummary(dietSummary, meal);
            }

            return(dietSummary);
        }
コード例 #6
0
        private DailyDiet CreateRandomDailyDiet(int numberOfMeals, List <Food> foods)
        {
            var dailyDiet = new DailyDiet();

            for (var j = 0; j < numberOfMeals; j++)
            {
                dailyDiet.Meals.Add(CreateRandomMeal(foods));
            }

            return(dailyDiet);
        }
コード例 #7
0
        public ActionResult Create(DailyDiet dailydiet)
        {
            if (ModelState.IsValid)
            {
                ddb.DailyDiet.Add(dailydiet);
                ddb.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(dailydiet));
        }
コード例 #8
0
        private double EvaluateDaily(DailyDiet dailyDiet, DietSummary targetDailyDiet)
        {
            var dailySummary = _dietAnalyzer.SummarizeDaily(dailyDiet);

            var distance =
                Math.Abs(targetDailyDiet.Proteins - dailySummary.Proteins) +
                Math.Abs(targetDailyDiet.Fat - dailySummary.Fat) +
                Math.Abs(targetDailyDiet.Calories - dailySummary.Calories) +
                Math.Abs(targetDailyDiet.Carbohydrates - dailySummary.Carbohydrates);

            return(distance);
            //distance > 0
            //? 1 / (distance)
            //: 1;
        }
コード例 #9
0
ファイル: DietCopierTests.cs プロジェクト: lulzzz/DietPlanner
        public void ShouldMakeFullCopyOfDiet()
        {
            var diet      = new Diet();
            var dailyDiet = new DailyDiet();
            var meal      = new Meal();
            var amount    = 123;
            var food      = new Food();
            var portion   = new FoodPortion(food, amount);

            meal.FoodPortions.Add(portion);
            dailyDiet.Meals.Add(meal);
            diet.DailyDiets.Add(dailyDiet);

            DietCopier.Copy(diet).ShouldBeEquivalentTo(diet);
        }
コード例 #10
0
        public async Task <ActionResult> Create(string json)
        {
            List <Dictionary <string, object> > oDict = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(json);

            clientes_dietas cd = new clientes_dietas();

            cd.created_at           = CurrentDate.getNow();
            cd.updated_at           = CurrentDate.getNow();
            cd.programa_clientes_id = int.Parse(oDict[oDict.Count - 1]["programID"].ToString());
            List <DailyDiet> dietDetails = new List <DailyDiet>();

            for (int i = 0; i < oDict.Count - 1; i++)
            {
                DailyDiet dietDetail = new DailyDiet();

                dietDetail.clientes_dietas_id = cd.id;
                dietDetail.opcion             = int.Parse(oDict[i]["option"].ToString());
                dietDetail.tipo_comida        = (FoodTypes)int.Parse(oDict[i]["foodType"].ToString());
                dietDetail.texto = oDict[i]["detail"].ToString();
                dietDetail.dia   = int.Parse(oDict[i]["day"].ToString()) + 1;

                dietDetails.Add(dietDetail);
            }

            cd.dieta_diaria = dietDetails;

            db.clientes_dietas.Add(cd);

            int s = await db.SaveChangesAsync();

            if (s > 0)
            {
                return(RedirectToAction("Index"));
            }

            ViewBag.clientId  = int.Parse(oDict[oDict.Count - 1]["clientId"].ToString());
            ViewBag.programId = int.Parse(oDict[oDict.Count - 1]["programID"].ToString());

            return(View());
        }
コード例 #11
0
        public async Task <ActionResult> Edit(string json)
        {
            List <Dictionary <string, object> > oDict = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dictionary <string, object> > >(json);

            int dietId = int.Parse(oDict[oDict.Count - 1]["dietID"].ToString());

            IQueryable <clientes_dietas> cdQuery = db.clientes_dietas.Where(m => m.id == dietId).Include(m => m.dieta_diaria);
            clientes_dietas cd = cdQuery.FirstOrDefault();

            cd.updated_at = CurrentDate.getNow();

            List <DailyDiet> dietDetails = new List <DailyDiet>();

            for (int i = 0; i < oDict.Count - 1; i++)
            {
                int id = int.Parse(oDict[i]["id"].ToString());

                DailyDiet dd = null;

                if (id > 0)
                {
                    dd = cd.dieta_diaria.Where(c => c.id == id).FirstOrDefault();
                }

                if (dd != null)
                {
                    dd.clientes_dietas_id = cd.id;
                    dd.opcion             = int.Parse(oDict[i]["option"].ToString());
                    dd.tipo_comida        = (FoodTypes)int.Parse(oDict[i]["foodType"].ToString());
                    dd.texto = oDict[i]["detail"].ToString();
                    dd.dia   = int.Parse(oDict[i]["day"].ToString()) + 1;

                    dietDetails.Add(dd);
                }
                else
                {
                    DailyDiet dietDetail = new DailyDiet();

                    dietDetail.clientes_dietas_id = cd.id;
                    dietDetail.opcion             = int.Parse(oDict[i]["option"].ToString());
                    dietDetail.tipo_comida        = (FoodTypes)int.Parse(oDict[i]["foodType"].ToString());
                    dietDetail.texto = oDict[i]["detail"].ToString();
                    dietDetail.dia   = int.Parse(oDict[i]["day"].ToString()) + 1;

                    dietDetails.Add(dietDetail);
                }
            }

            cd.dieta_diaria = dietDetails;

            db.Entry(cd).State = EntityState.Modified;

            int s = await db.SaveChangesAsync();

            if (s > 0)
            {
                return(RedirectToAction("Index"));
            }

            ViewBag.clientId  = int.Parse(oDict[oDict.Count - 1]["clientId"].ToString());
            ViewBag.programId = int.Parse(oDict[oDict.Count - 1]["programID"].ToString());

            return(View());
        }
コード例 #12
0
        // GET: ClientesDietas/Edit/5
        public async Task <ActionResult> Edit(int id)
        {
            ViewBag.programId = id;

            clientes_dietas clientes_dietas = await db.clientes_dietas.Where(m => m.id == id).Include(m => m.programa_clientes).Include(m => m.dieta_diaria).FirstOrDefaultAsync();

            ViewBag.clientId = clientes_dietas.programa_clientes.cliente_id;

            int createdOptions = clientes_dietas.dieta_diaria.OrderByDescending(d => d.opcion).Select(d => d.opcion).FirstOrDefault();

            ViewBag.optionsCount = createdOptions;

            StringBuilder diets = new StringBuilder();

            for (int opt = 0; opt < createdOptions; opt++)
            {
                StringBuilder dietsDiv = new StringBuilder();

                var newDietOptionLabelRow = "<div class='row mar-bot-10'><label class='diet-title-sub'>Opción " + (opt + 1).ToString() + "</label></div>";
                dietsDiv.Append(newDietOptionLabelRow);

                var dietDivRowId  = "opt-" + opt.ToString();
                var newDietDivRow = "<div id='" + dietDivRowId + "' class='row diet-row mar-bot-15'>";
                dietsDiv.Append(newDietDivRow);

                StringBuilder dietOptionRow = new StringBuilder();

                for (var i = 0; i < 7; i++)
                {
                    var optColId = dietDivRowId + "-col-" + i.ToString();
                    if (i == 0)
                    {
                        var newDietColumn = "<div id='" + optColId + "' class='col-2'>";
                        dietOptionRow.Append(newDietColumn);
                    }
                    else
                    {
                        var newDietColumn = "<div id='" + optColId + "' class='col-2 mar-lef-10'>";
                        dietOptionRow.Append(newDietColumn);
                    }

                    StringBuilder currentColumn = new StringBuilder();

                    switch (i)
                    {
                    case 0:
                        currentColumn.Append("<label class='diet-title'>Lun</label>");
                        break;

                    case 1:
                        currentColumn.Append("<label class='diet-title'>Mar</label>");
                        break;

                    case 2:
                        currentColumn.Append("<label class='diet-title'>Mie</label>");
                        break;

                    case 3:
                        currentColumn.Append("<label class='diet-title'>Jue</label>");
                        break;

                    case 4:
                        currentColumn.Append("<label class='diet-title'>Vie</label>");
                        break;

                    case 5:
                        currentColumn.Append("<label class='diet-title'>Sab</label>");
                        break;

                    case 6:
                        currentColumn.Append("<label class='diet-title'>Dom</label>");
                        break;

                    default:
                        break;
                    }

                    for (var j = 0; j < 5; j++)
                    {
                        var       currentBoxId = optColId + "-row-" + j.ToString();
                        int       dia          = i + 1;
                        int       opc          = opt + 1;
                        FoodTypes tc           = (FoodTypes)j;
                        DailyDiet existingDiet = clientes_dietas.dieta_diaria.Where(c => c.dia == dia && c.tipo_comida == tc && c.opcion == opc).FirstOrDefault();
                        switch (j)
                        {
                        case 0:

                            if (existingDiet != null)
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Desayuno</label><textarea id='" + currentBoxId + "'>" + existingDiet.texto + "</textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='" + existingDiet.id + "'/>");
                            }
                            else
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Desayuno</label><textarea id='" + currentBoxId + "'></textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='0'/>");
                            }

                            break;

                        case 1:

                            if (existingDiet != null)
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Media Mañana</label><textarea id='" + currentBoxId + "'>" + existingDiet.texto + "</textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='" + existingDiet.id + "'/>");
                            }
                            else
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Media Mañana</label><textarea id='" + currentBoxId + "'></textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='0'/>");
                            }
                            break;

                        case 2:

                            if (existingDiet != null)
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Almuerzo</label><textarea id='" + currentBoxId + "'>" + existingDiet.texto + "</textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='" + existingDiet.id + "'/>");
                            }
                            else
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Almuerzo</label><textarea id='" + currentBoxId + "'></textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='0'/>");
                            }
                            break;

                        case 3:

                            if (existingDiet != null)
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Media Tarde</label><textarea id='" + currentBoxId + "'>" + existingDiet.texto + "</textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='" + existingDiet.id + "'/>");
                            }
                            else
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Media Tarde</label><textarea id='" + currentBoxId + "'></textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='0'/>");
                            }
                            break;

                        case 4:
                            if (existingDiet != null)
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Cena</label><textarea id='" + currentBoxId + "'>" + existingDiet.texto + "</textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='" + existingDiet.id + "'/>");
                            }
                            else
                            {
                                currentColumn.Append("<div class='model daily-diet'><label>Cena</label><textarea id='" + currentBoxId + "'></textarea></div>");
                                currentColumn.Append("<input type='hidden' id='opt-" + opt + "-col-" + i + "-row-" + j + "-id' value='0'/>");
                            }
                            break;

                        default:
                            break;
                        }
                    }

                    currentColumn.Append("</div>");

                    dietOptionRow.Append(currentColumn.ToString());
                }

                dietOptionRow.Append("</div>");

                dietsDiv.Append(dietOptionRow.ToString());
                dietsDiv.Append("</div>");

                diets.Append(dietsDiv.ToString());
            }

            ViewBag.optionsHtml = diets.ToString();

            return(View(clientes_dietas));
        }
コード例 #13
0
        private static void Output(DailyDiet dailyDiet, StreamWriter file)
        {
            var recipes = dailyDiet.Meals.SelectMany(meal => meal.Receipes);

            recipes.ToList().ForEach(recipe => file.Write(recipe.Name.Substring(5)));
        }
コード例 #14
0
        //
        // GET: /DailyDiet/Edit/5

        public ActionResult Edit(int id)
        {
            DailyDiet dailydiet = ddb.DailyDiet.Find(id);

            return(View(dailydiet));
        }
コード例 #15
0
        //
        // GET: /DailyDiet/Details/5

        public ViewResult Details(int id)
        {
            DailyDiet dailydiet = ddb.DailyDiet.Find(id);

            return(View(dailydiet));
        }