public ActionResult DeleteConfirmed(int id)
        {
            Refeico refeico = db.Refeicoes.Find(id);

            db.Refeicoes.Remove(refeico);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "RefeicaoID,RegistoID,Data,Tipo")] Refeico refeico)
 {
     if (ModelState.IsValid)
     {
         db.Entry(refeico).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.RegistoID = new SelectList(db.RegistoDiarios, "RegistoID", "RegistoID", refeico.RegistoID);
     return(View(refeico));
 }
        // GET: Refeicoes/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Refeico refeico = db.Refeicoes.Find(id);

            if (refeico == null)
            {
                return(HttpNotFound());
            }
            return(View(refeico));
        }
        // GET: Refeicoes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Refeico refeico = db.Refeicoes.Find(id);

            if (refeico == null)
            {
                return(HttpNotFound());
            }
            ViewBag.RegistoID = new SelectList(db.RegistoDiarios, "RegistoID", "RegistoID", refeico.RegistoID);
            return(View(refeico));
        }
        public ActionResult Create([Bind(Include = "RefeicaoID,RegistoID,Data,Tipo")] Refeico refeico)
        {
            if (ModelState.IsValid)
            {
                var userId   = Convert.ToInt32(User.Identity.GetUserId());
                var refeicao = db.Refeicoes.FirstOrDefault(c => c.RegistoDiario.Objectivo.UserID == userId);
                int counter  = 0;
                if (refeicao == null)
                {
                    counter++;
                }
                double        counterkcal = 0, counterproteinas = 0, countergordura = 0, counterhc = 0;
                RegistoDiario registo = db.RegistoDiarios.FirstOrDefault(o => o.Objectivo.UserID == userId && o.Data == refeico.Data);
                if (registo == null)
                {
                    RegistoDiario registo1  = new RegistoDiario();
                    var           refeicoes = db.RefeicaoPratos.Include(i => i.Refeico).Where(q => q.Refeico.RegistoID == registo1.RegistoID);
                    var           user      = Convert.ToInt32(User.Identity.GetUserId());
                    Objectivo     objectivo = db.Objectivoes.FirstOrDefault(o => o.UserID == user && o.Data_fim == null);
                    if (objectivo != null)
                    {
                        registo1.ObjectivoID = objectivo.ObjectivoID;
                        registo1.Data        = refeico.Data;
                        db.RegistoDiarios.Add(registo1);
                        foreach (RefeicaoPrato i in refeicoes)
                        {
                            counterkcal      += (i.Dose / 100) * i.Prato.Kcal;
                            counterproteinas += (i.Dose / 100) * i.Prato.Proteinas;
                            countergordura   += (i.Dose / 100) * i.Prato.Gordura;
                            counterhc        += (i.Dose / 100) * i.Prato.HidCarbono;
                        }
                        refeico.RegistoID = registo1.RegistoID;
                        db.Refeicoes.Add(refeico);
                        db.SaveChanges();
                        counter++;
                        if (counter == 2)
                        {
                            TempData["UserGuide"] = "UserGuide";
                        }
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        TempData["Alert2"] = "Ainda não existe nenhum objectivo. Por favor, crie um objectivo primeiro.";

                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    var       user      = Convert.ToInt32(User.Identity.GetUserId());
                    var       refeicoes = db.RefeicaoPratos.Include(i => i.Refeico).Where(q => q.Refeico.RegistoID == registo.RegistoID);
                    Objectivo objectivo = db.Objectivoes.FirstOrDefault(o => o.UserID == user && o.Data_fim == null);
                    if (objectivo != null)
                    {
                        foreach (RefeicaoPrato i in refeicoes)
                        {
                            counterkcal      += (i.Dose / 100) * i.Prato.Kcal;
                            counterproteinas += (i.Dose / 100) * i.Prato.Proteinas;
                            countergordura   += (i.Dose / 100) * i.Prato.Gordura;
                            counterhc        += (i.Dose / 100) * i.Prato.HidCarbono;
                        }
                        refeico.RegistoID = registo.RegistoID;
                        db.Refeicoes.Add(refeico);
                        db.SaveChanges();
                        counter++;
                        if (counter == 2)
                        {
                            TempData["UserGuide"] = "UserGuide";
                        }
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        TempData["Alert2"] = "Ainda não existe nenhum objectivo. Por favor, crie um objectivo primeiro.";

                        return(RedirectToAction("Index"));
                    }
                }
            }

            ViewBag.RegistoID = new SelectList(db.RegistoDiarios, "RegistoID", "RegistoID", refeico.RegistoID);
            return(View(refeico));
        }