public JsonResult Add(SupplementEntryModel model)
        {
            if (ModelState.IsValid)
            {
                using (var context = new DietJournalEntities())
                {
                    var entry = context.SupplementEntries.CreateObject();
                    context.SupplementEntries.AddObject(entry);

                    entry.Name = model.Name;
                    if (!String.IsNullOrEmpty(model.Milligrams))
                        entry.Milligrams = decimal.Parse(model.Milligrams);
                    entry.EntryDate = model.ConsumedDate;
                    entry.SavedDate = DateTime.Now;
                    entry.UserId = CurrentUserId.Value;

                    context.SaveChanges();
                }

                return Json(new { IsValid = true, ReturnUrl = Url.Action("Index", new { date = model.ConsumedDate }) });
            }

            return Json(new { IsValid = false, ErrorMessage = "" });
        }
        public ActionResult Entry(int id)
        {
            SupplementEntryModel model = null;

            using (var entities = new DietJournalEntities())
            {
                var result = entities.SupplementEntries.FirstOrDefault(e => e.Id == id);

                if (result != null && result.UserId == CurrentUserId.Value)
                {
                    model = new SupplementEntryModel
                    {
                        Id = id,
                        Name = result.Name,
                        ConsumedDate = result.EntryDate,
                        Milligrams = result.Milligrams > 0 ? result.Milligrams.ToString() : string.Empty,
                    };
                }
            }

            return EntryView(model);
        }
        private ActionResult EntryView(SupplementEntryModel model)
        {
            ViewBag.Back = model.Id > 0;

            return View("Entry", model);
        }
        public ActionResult SelectFavorite(SupplementFavoriteSelectionModel model)
        {
            var entryModel = new SupplementEntryModel
            {
                ConsumedDate = model.ConsumedDate
            };

            if (ModelState.IsValid && !String.IsNullOrEmpty(model.Selection))
            {
                int favoriteId = int.Parse(model.Selection);

                using (var context = new DietJournalEntities())
                {
                    var favorite = context.SupplementFavorites.FirstOrDefault(f => f.Id == favoriteId);
                    if (favorite != null)
                    {
                        entryModel.Milligrams = favorite.Milligrams.HasValue ? favorite.Milligrams.Value.ToString() : string.Empty;
                        entryModel.Name = favorite.Name;
                        entryModel.Favorite = true;
                    }
                }
            }

            return EntryView(entryModel);
        }
 public ActionResult Add(DateTime date)
 {
     var model = new SupplementEntryModel { ConsumedDate = date };
     return View("Entry", model);
 }
        public JsonResult Entry(SupplementEntryModel model)
        {
            if (ModelState.IsValid)
            {
                using (var entities = new DietJournalEntities())
                {
                    SupplementEntry entry = null;

                    if (model.Id > 0)
                        entry = entities.SupplementEntries.FirstOrDefault(e => e.Id == model.Id);

                    if (entry == null)
                    {
                        entry = new SupplementEntry();
                        entities.SupplementEntries.AddObject(entry);
                    }

                    entry.UserId = CurrentUserId.Value;
                    entry.Name = model.Name;
                    entry.EntryDate = model.ConsumedDate;
                    entry.SavedDate = DateTime.Now;
                    entry.Milligrams = !String.IsNullOrEmpty(model.Milligrams) ? decimal.Parse(model.Milligrams) : 0M;

                    if (model.Favorite)
                    {
                        var favorite = new SupplementFavorite
                        {
                            UserId = CurrentUserId.Value,
                            Milligrams = entry.Milligrams,
                            Name = entry.Name
                        };

                        entities.SupplementFavorites.AddObject(favorite);
                    }

                    entities.SaveChanges();
                }

                return Json(new { IsValid = true });
            }

            return Json(new { IsValid = false, ErrorMessage = "" });
        }