示例#1
0
        public ActionResult CreateCount([Bind(Include = "Name, Date")] DailyCalorieCount dcc)
        {
            if (ModelState.IsValid)
            {
                var userId = User.Identity.GetUserId();

                if (!String.IsNullOrEmpty(userId))
                {
                    var cs = db.DailyCalorieCounts.Where(c => c.UserId.Equals(userId));

                    foreach (var c in cs)
                    {
                        if (c.Date.Date.Equals(dcc.Date.Date))
                        {
                            return(View(dcc));
                        }
                    }
                    dcc.UserId = userId;
                    dcc.User   = db.Users.Find(userId);

                    db.DailyCalorieCounts.Add(dcc);

                    db.SaveChanges();

                    int id = dcc.DailyCalorieCountId;

                    return(RedirectToAction("Details", new { id = id }));
                }
            }

            return(View(dcc));
        }
示例#2
0
        private void UpdateCountSum(int cal_id, int count_id)
        {
            CalorieItemIntake ci = db.CalorieItemIntakes.Find(cal_id);
            DailyCalorieCount dc = db.DailyCalorieCounts.Find(count_id);

            dc.TotalCalories -= Calculator.Sum(ci.CalorieItem.Calories, ci.Quantity, ci.CalorieItem.ServingSize);
        }
示例#3
0
        public ActionResult EditCalorieItem([Bind(Include = "CalorieItemIntakeId, CalorieItemId, DailyCalorieCountId,Quantity")] CalorieItemIntake item)
        {
            if (ModelState.IsValid)
            {
                DailyCalorieCount dcc = db.DailyCalorieCounts.Find(item.DailyCalorieCountId);

                CalorieItemIntake ocu = db.CalorieItemIntakes.Find(item.CalorieItemIntakeId);
                //pdateCountSum(item.CalorieItemIntakeId,dcc.DailyCalorieCountId);
                double cal  = db.CalorieItems.Find(ocu.CalorieItemId).Calories;
                double size = db.CalorieItems.Find(ocu.CalorieItemId).ServingSize;
                double qnty = ocu.Quantity;

                dcc.TotalCalories -= Calculator.Sum(cal, qnty, size);

                dcc.TotalCalories += Calculator.Sum(db.CalorieItems.Find(item.CalorieItemId).Calories, item.Quantity, db.CalorieItems.Find(item.CalorieItemId).ServingSize);

                db.Entry(ocu).State = EntityState.Detached;
                db.Entry(dcc).State = EntityState.Modified;


                //dis bitch breaks//////////////////////////////////
                db.Entry(item).State = EntityState.Modified;////////
                ////////////////////////////////////////////////////

                db.SaveChanges();

                return(RedirectToAction("Details", new { id = item.DailyCalorieCountId }));
            }

            ViewBag.Name = db.CalorieItems.Find(item.CalorieItemId);

            return(View(item));
        }
示例#4
0
        public ActionResult CreateCustom([Bind(Include = "Name,Calories,Carbs,Protein,Fat,Quantity,SelectedCount, SendSugestion")] CustomCalorieViewModel vm)
        {
            if (ModelState.IsValid)
            {
                DailyCalorieCount dcc = new DailyCalorieCount();
                bool send             = vm.SendSugestion;//set the send suggestion bool

                if (vm.SelectedCount == null || vm.SelectedCount == 0)
                {
                    dcc = new DailyCalorieCount()
                    {
                        Date          = DateTime.Now,
                        Name          = "New Count",
                        UserId        = User.Identity.GetUserId(),
                        TotalCalories = 0
                    };
                    db.DailyCalorieCounts.Add(dcc);
                    db.SaveChanges();
                }
                else
                {
                    dcc = db.DailyCalorieCounts.Find(vm.SelectedCount);
                }

                db.TempCalorieItems.Add(new TempCalorieItem()//creating the temp item
                {
                    Name                = vm.Name,
                    Calories            = CastDouble(vm.Calories),
                    Carbs               = CastDouble(vm.Carbs),
                    Protein             = CastDouble(vm.Protein),
                    Fat                 = CastDouble(vm.Fat),
                    ServingSize         = CastDouble(vm.Quantity),
                    DailyCalorieCount   = dcc,
                    DailyCalorieCountId = dcc.DailyCalorieCountId,
                    SendSugestion       = send
                });

                dcc.TotalCalories += Calculator.Sum((double)vm.Calories, (double)vm.Quantity, (double)vm.Quantity);
                //add totals of other attributes
                //dcc.TotalCarbs += Calculator.Sum()
                //dcc.TotalProtien += Calculator.Sum()
                //dcc.TotalFat += Calculator.Sum()

                db.SaveChanges();
                return(RedirectToAction("FoodIndex"));
            }
            var userId = User.Identity.GetUserId();

            vm.DailyCalorieCountId = db.DailyCalorieCounts.Where(c => c.UserId == userId).OrderByDescending(c => c.Date).ToList().Select(s => new SelectListItem()
            {
                Value = s.DailyCalorieCountId.ToString(),
                Text  = (s.Name + ": " + s.Date.ToString("ddd - dd/MM"))
            }).ToList();
            return(View(vm));
        }
示例#5
0
        public ActionResult EditCount([Bind(Include = "UserId, TotalCalories, DailyCalorieCountId, Name, Date")] DailyCalorieCount dcc)
        {
            if (ModelState.IsValid)
            {
                db.Entry(dcc).State = EntityState.Modified;
                db.SaveChanges();

                int id = dcc.DailyCalorieCountId;
                return(RedirectToAction("Details", new { id = id }));
            }

            return(View(dcc));
        }
示例#6
0
        public ActionResult EditTempItem([Bind(Include = "TempCalorieItemId, DailyCalorieCountId,Name, Calories, Carbs,Protein,Fat, Quantity, SendSugestion")] CustomCalorieEditViewModel item)
        {
            if (ModelState.IsValid)
            {
                DailyCalorieCount dcc = db.DailyCalorieCounts.Find(item.DailyCalorieCountId);

                //TempCalorieItem tci = db.TempCalorieItems.Where(o => o.DailyCalorieCountId == dcc.DailyCalorieCountId).ToList()[0];
                TempCalorieItem tci = db.TempCalorieItems.Find(item.TempCalorieItemId);
                //minus the og calories
                dcc.TotalCalories -= tci.Calories;
                //add the new calories
                dcc.TotalCalories += (double)item.Calories;

                //save the dailycount
                db.Entry(dcc).State = EntityState.Modified;

                //make sure shit aint null
                if (item.Carbs == null)
                {
                    item.Carbs = 0;
                }
                if (item.Protein == null)
                {
                    item.Protein = 0;
                }
                if (item.Fat == null)
                {
                    item.Fat = 0;
                }
                //update temp item
                tci.Name              = item.Name;
                tci.Calories          = (double)item.Calories;
                tci.Carbs             = (double)item.Carbs;
                tci.Protein           = (double)item.Protein;
                tci.Fat               = (double)item.Fat;
                tci.ServingSize       = (double)item.Quantity;
                tci.SendSugestion     = item.SendSugestion;
                tci.DailyCalorieCount = db.DailyCalorieCounts.Find(item.DailyCalorieCountId);

                //save that change
                db.Entry(tci).State = EntityState.Modified;
                db.SaveChanges();
                //send them packing to the calorie count they were on
                return(RedirectToAction("Details", new { id = item.DailyCalorieCountId }));
            }

            //ViewBag.Name = db.CalorieItems.Find(item.TempCalorieItemId);

            return(View(item));
        }
示例#7
0
        public ActionResult DeleteDailyCount(int id)
        {
            List <CalorieItemIntake> intake = db.CalorieItemIntakes.Where(i => i.DailyCalorieCountId == id).ToList();

            foreach (CalorieItemIntake c in intake)
            {
                db.CalorieItemIntakes.Remove(c);
            }
            DailyCalorieCount dc = db.DailyCalorieCounts.Find(id);

            db.DailyCalorieCounts.Remove(dc);

            db.SaveChanges();

            return(RedirectToAction("Index"));
        }
示例#8
0
        public ActionResult Add([Bind(Include = "CalorieItemId, Quantity, SelectedCalorieCount")] ItemIntakeViewModel ii)
        {
            //if the required items have assigned values!
            if (ModelState.IsValid)
            {
                //new insstance of a calorie count
                DailyCalorieCount dcc = new DailyCalorieCount();

                //if there has been no existing calorie count selected
                if (ii.SelectedCalorieCount == null || ii.SelectedCalorieCount == 0)
                {
                    // FUTURE :if not logged in save a session count?

                    //create a new daily count based on today
                    dcc = new DailyCalorieCount()
                    {
                        Date          = DateTime.Now,
                        Name          = "New Count",
                        UserId        = User.Identity.GetUserId(),
                        TotalCalories = 0
                    };
                    db.DailyCalorieCounts.Add(dcc);
                    db.SaveChanges();
                }
                else //otherwise if the user selected an existing daily calorie count save set instance to that
                {
                    dcc = db.DailyCalorieCounts.Find(ii.SelectedCalorieCount);
                }

                //after deciding what daily count to add the item to
                //add the item to it based on the view model
                db.CalorieItemIntakes.Add(new CalorieItemIntake()
                {
                    CalorieItemId       = ii.CalorieItemId,
                    CalorieItem         = db.CalorieItems.Find(ii.CalorieItemId),
                    Quantity            = ii.Quantity,
                    DailyCalorieCount   = dcc,
                    DailyCalorieCountId = dcc.DailyCalorieCountId
                });

                //add the amount to the calories
                //based on the base calorie amount * (qnty eaten / base serving size)
                dcc.TotalCalories += Calculator.Sum(db.CalorieItems.Find(ii.CalorieItemId).Calories, ii.Quantity, db.CalorieItems.Find(ii.CalorieItemId).ServingSize);

                //FUTURE ADD OTHER TOTALS in the same way
                //add totals of other attributes
                //dcc.TotalCarbs += Calculator.Sum()
                //dcc.TotalProtien += Calculator.Sum()
                //dcc.TotalFat += Calculator.Sum()

                db.SaveChanges();
                return(RedirectToAction("FoodIndex"));
                //update days total in nav bar?
            }
            // get user id
            var userId = User.Identity.GetUserId();

            //get calorie item and send back to view if viewModel is not valid
            ii.CalorieItem = db.CalorieItems.Find(ii.CalorieItemId);
            //imagepath
            ii.ImagePath = db.CalorieItems.Find(ii.CalorieItemId).ImagePath;
            // re send the daily counts to view
            ii.DailyCalorieCountId = db.DailyCalorieCounts.Where(c => c.UserId == userId).ToList().Select(s => new SelectListItem()
            {
                Value = s.DailyCalorieCountId.ToString(),
                Text  = s.DateToString()
            }).ToList();

            return(View(ii));
        }