public ActionResult DeleteConfirmed(int?id) { var userId = Convert.ToInt32(User.Identity.GetUserId()); var utilizador = db.Utilizadors.FirstOrDefault(i => i.UserID == userId); Objectivo objectivo = db.Objectivoes.Include(o => o.Utilizador).FirstOrDefault(i => i.UserID == userId && i.Data_fim == null); objectivo.Data_fim = DateTime.Today; objectivo.Peso_Final = utilizador.Peso; db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "ObjectivoID,UserID,Data_inicio,Data_fim,Peso_objectivo,Intake_diario")] Objectivo objectivo) { if (ModelState.IsValid) { db.Entry(objectivo).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.UserID = new SelectList(db.Utilizadors, "UserID", "Nome", objectivo.UserID); return(View(objectivo)); }
// GET: Objectivoes/Delete/5 public ActionResult Delete() { var userId = Convert.ToInt32(User.Identity.GetUserId()); var objectivoes = db.Objectivoes.Include(o => o.Utilizador); var refeicoes = db.RegistoDiarios.Include(i => i.Objectivo); Objectivo objectivo = objectivoes.FirstOrDefault(o => o.UserID == userId && o.Data_fim == null); Utilizador user = db.Utilizadors.FirstOrDefault(o => o.UserID == userId); if (user.Nome == null) { ViewBag.SemDados = "Nao tem dados inseridos"; return(View()); } if (objectivo == null) { return(HttpNotFound()); } return(View(objectivo)); }
// GET: Objectivoes/Details/5 public ActionResult Details(int?id) { int userId = Convert.ToInt32(User.Identity.GetUserId()); Utilizador user = db.Utilizadors.FirstOrDefault(o => o.UserID == userId); if (user.Nome == null) { ViewBag.SemDados = "Nao tem dados inseridos"; return(View()); } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Objectivo objectivo = db.Objectivoes.Find(id); if (objectivo == null) { return(HttpNotFound()); } return(View(objectivo)); }
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)); }
public ActionResult Create([Bind(Include = "ObjectivoID,Data_inicio,Peso_objectivo")] Objectivo objectivo) { var error = false; if (objectivo.Data_inicio == null) { ModelState.AddModelError("Data de Início", "Por favor introduza a data a dar início ao objectivo"); error = true; } if (objectivo.Peso_objectivo == null) { ModelState.AddModelError("Peso objectivo", "Por favor introduza o peso objectivo a atingir"); error = true; } if (error == true) { return(View()); } if (ModelState.IsValid) { var userId = Convert.ToInt32(User.Identity.GetUserId()); var objectivoes = db.Objectivoes.FirstOrDefault(c => c.UserID == userId); int counter = 0; if (objectivoes == null) { counter++; } var actual = db.Objectivoes.FirstOrDefault(p => p.UserID == userId && p.Data_fim == null); if (actual == null) { counter++; objectivo.UserID = Convert.ToInt32(userId); Utilizador utilizador = db.Utilizadors.Find(userId); UtilizadorsController x = new UtilizadorsController(); var age = x.GetAge((DateTime)utilizador.Data_nascimento); double Actividade = 0; if (utilizador.Genero == "F") { switch (utilizador.Actividade_fisica) { case 1: Actividade = 1; break; case 2: Actividade = 1.12; break; case 3: Actividade = 1.27; break; case 4: Actividade = 1.45; break; } objectivo.Intake_diarioA = Convert.ToInt32(354 - (6.91 * age) + (Actividade * (9.36 * utilizador.Peso + (726 * (utilizador.Altura / 100))))); int Intake_diarioR = Convert.ToInt32(354 - (6.91 * age) + (Actividade * (9.36 * objectivo.Peso_objectivo + (726 * (utilizador.Altura / 100))))); if (Intake_diarioR > 1800 & objectivo.Intake_diarioA - Intake_diarioR > 500) { objectivo.Intake_diarioR = objectivo.Intake_diarioA - 500; } else if (Intake_diarioR < 1800 & objectivo.Intake_diarioA - Intake_diarioR < 500) { objectivo.Intake_diarioR = 1800; } else { objectivo.Intake_diarioR = Intake_diarioR; } } else { switch (utilizador.Actividade_fisica) { case 1: Actividade = 1; break; case 2: Actividade = 1.11; break; case 3: Actividade = 1.25; break; case 4: Actividade = 1.48; break; } objectivo.Intake_diarioA = Convert.ToInt32(662 - (9.53 * age) + (Actividade * (15.91 * utilizador.Peso + (539.6 * (utilizador.Altura / 100))))); int Intake_diarioR = Convert.ToInt32(662 - (9.53 * age) + (Actividade * (15.91 * objectivo.Peso_objectivo + (539.6 * (utilizador.Altura / 100))))); if (Intake_diarioR > 1800 & objectivo.Intake_diarioA - Intake_diarioR > 500) { objectivo.Intake_diarioR = objectivo.Intake_diarioA - 500; } else if (Intake_diarioR < 1800 & objectivo.Intake_diarioA - Intake_diarioR < 500) { objectivo.Intake_diarioR = 1800; } else { objectivo.Intake_diarioR = Intake_diarioR; } } db.Objectivoes.Add(objectivo); db.SaveChanges(); if (counter == 2) { TempData["Userguide"] = "Primeiro objectivo"; } return(RedirectToAction("Index", "Objectivoes")); } else { TempData["notice"] = "<script>alert('Ja existe um objectivo criado e por terminar')>;</script>"; return(RedirectToAction("Index", "Objectivoes")); } } ViewBag.UserID = new SelectList(db.Utilizadors, "UserID", "Nome", objectivo.UserID); return(View(objectivo)); }
// GET: Objectivoes public ActionResult Index() { int userId = Convert.ToInt32(User.Identity.GetUserId()); Utilizador user = db.Utilizadors.FirstOrDefault(o => o.UserID == userId); if (user.Nome == null) { ViewBag.SemDados = "Nao tem dados inseridos"; return(View()); } var objectivoes = db.Objectivoes.Include(o => o.Utilizador).Where(o => o.UserID == userId); Objectivo objectivo = objectivoes.FirstOrDefault(o => o.UserID == userId && o.Data_fim == null); var refeicoes = db.RegistoDiarios.Include(i => i.Objectivo).Where(o => o.Objectivo.ObjectivoID == objectivo.ObjectivoID); RegistoPeso peso = db.RegistoPesoes.FirstOrDefault(o => o.User_ID == userId && o.Data == DateTime.Today); var refeico = db.Refeicoes.FirstOrDefault(c => c.RegistoDiario.Objectivo.UserID == userId); var today = DateTime.Today; double counter = 0; double counter2 = 0; if (objectivo != null) { int dayOfWeek = (int)today.DayOfWeek; int delta = (int)DayOfWeek.Monday - dayOfWeek; if (delta > 0) { delta -= 7; } List <DataPoint> datapoints = new List <DataPoint> { }; List <DataPoint> intake = new List <DataPoint> { }; while (delta <= 0) { var day = today.AddDays(delta); var registo = db.RegistoDiarios.FirstOrDefault(c => c.Objectivo.UserID == userId && c.Data == day); if (registo != null) { SqlParameter RegistoPratos = new SqlParameter("@RegistoID", registo.RegistoID); IList <SumPratos_Result> registoPratos = db.Database.SqlQuery <SumPratos_Result>("SumPratos @RegistoID", RegistoPratos).ToList(); SqlParameter RegistoIngredientes = new SqlParameter("@RegistoID", registo.RegistoID); IList <SumIngredientes_Result> registoIngredientes = db.Database.SqlQuery <SumIngredientes_Result>("SumIngredientes @RegistoID", RegistoIngredientes).ToList(); SqlParameter RegistoBebidas = new SqlParameter("@RegistoID", registo.RegistoID); IList <SumBebidas_Result> registoBebidas = db.Database.SqlQuery <SumBebidas_Result>("SumBebidas @RegistoID", RegistoBebidas).ToList(); RegistoDiario registado = new RegistoDiario() { Total_Kcal = (double)(registoBebidas[0].Kcal + registoIngredientes[0].Kcal + registoPratos[0].Kcal) }; datapoints.Add(new DataPoint(counter, registado.Total_Kcal, day.ToString("dddd"))); intake.Add(new DataPoint(counter, objectivo.Intake_diarioR, day.ToString("dddd"))); counter++; } else { datapoints.Add(new DataPoint(counter, null, day.ToString("dddd"))); intake.Add(new DataPoint(counter, objectivo.Intake_diarioR, day.ToString("dddd"))); counter++; } delta++; } while (intake.Count < 7) { today = today.AddDays(1); datapoints.Add(new DataPoint(counter, null, today.ToString("dddd"))); intake.Add(new DataPoint(counter, objectivo.Intake_diarioR, today.ToString("dddd"))); counter++; } ViewBag.DataPoints = JsonConvert.SerializeObject(datapoints); ViewBag.IntakeR = JsonConvert.SerializeObject(intake); ViewBag.IMath = JsonConvert.SerializeObject(objectivo.Intake_diarioR); List <DataPoint> registod = new List <DataPoint> { }; counter = 0; foreach (RegistoDiario d in refeicoes.OrderBy(c => c.Data)) { SqlParameter RegistoPratos = new SqlParameter("@RegistoID", d.RegistoID); IList <SumPratos_Result> registoPratos = db.Database.SqlQuery <SumPratos_Result>("SumPratos @RegistoID", RegistoPratos).ToList(); SqlParameter RegistoIngredientes = new SqlParameter("@RegistoID", d.RegistoID); IList <SumIngredientes_Result> registoIngredientes = db.Database.SqlQuery <SumIngredientes_Result>("SumIngredientes @RegistoID", RegistoIngredientes).ToList(); SqlParameter RegistoBebidas = new SqlParameter("@RegistoID", d.RegistoID); IList <SumBebidas_Result> registoBebidas = db.Database.SqlQuery <SumBebidas_Result>("SumBebidas @RegistoID", RegistoBebidas).ToList(); RegistoDiario registado = new RegistoDiario() { Total_Kcal = (double)(registoBebidas[0].Kcal + registoIngredientes[0].Kcal + registoPratos[0].Kcal) }; registod.Add(new DataPoint(counter, registado.Total_Kcal, d.Data.ToString("dd-MM-yyyy"))); counter++; } if (registod.Count() > 0) { ViewBag.Registos = JsonConvert.SerializeObject(registod); } } var total = db.RegistoPesoes.Include(o => o.Utilizador).Where(i => i.User_ID == userId); List <DataPoint> kg = new List <DataPoint> { }; counter = 0; foreach (RegistoPeso i in total) { kg.Add(new DataPoint(counter, i.Peso, i.Data.Value.ToString("dd-MM-yyyy"))); counter++; } List <DataPoint> objectiv = new List <DataPoint> { }; counter = 0; foreach (Objectivo i in objectivoes) { if (i.Data_fim != null && i.Peso_Final != i.Peso_objectivo) { counter2++; } if (i.Data_fim != null && i.Peso_Final == i.Peso_objectivo) { counter++; } } objectiv.Add(new DataPoint(0, counter, "Concluidos com sucesso")); objectiv.Add(new DataPoint(1, counter2, "Terminados sem sucesso")); List <DataPoint> ordemCount = new List <DataPoint> { }; counter = 0; SqlParameter Id = new SqlParameter("@UserID", userId); IList <Favorites> refeicao = db.Database.SqlQuery <Favorites>("Top5 @UserID", Id).ToList(); List <DataPoint> favoritos = new List <DataPoint> { }; for (int i = 0; i < refeicao.Count(); i++) { var refeicaoID = refeicao[i].PratoID; refeicao[i].Nome = db.Pratos.FirstOrDefault(o => o.PratosID == refeicaoID).Nome; favoritos.Add(new DataPoint(i, refeicao[i].Ocorrencias, refeicao[i].Nome)); } counter = 0; counter2 = 0; List <DataPoint> dias = new List <DataPoint> { }; var listaobjectivos = db.Objectivoes.Where(u => u.UserID == userId).OrderBy(q => q.Data_inicio); for (int i = 0; i < listaobjectivos.Count(); i++) { DateTime inicio = (DateTime)listaobjectivos.ToList()[i].Data_inicio; var fim = listaobjectivos.ToList()[i].Data_fim; if (inicio != null && fim != null) { DateTime fim1 = (DateTime)listaobjectivos.ToList()[i].Data_fim; counter += fim1.Subtract(inicio).TotalDays; if (i + 1 < listaobjectivos.Count()) { var novo = listaobjectivos.ToList()[i + 1].Data_inicio; if (novo != null) { DateTime novo1 = (DateTime)listaobjectivos.ToList()[i + 1].Data_inicio; counter2 += novo1.Subtract((DateTime)fim1).TotalDays; } } } if (inicio != null && fim == null) { counter += DateTime.Today.Subtract(inicio).TotalDays; } } dias.Add(new DataPoint(0, counter, "Dias com objectivos")); dias.Add(new DataPoint(1, counter2, "Dias sem objectivos")); ViewBag.Total = JsonConvert.SerializeObject(kg); ViewBag.Object = JsonConvert.SerializeObject(objectiv); if (favoritos.Count() > 0) { ViewBag.Favoritos = JsonConvert.SerializeObject(favoritos); } if (dias.Count() > 0) { ViewBag.Count = JsonConvert.SerializeObject(dias); } if (objectivo != null) { if (objectivo.Data_inicio > DateTime.Now) { if (refeico == null) { ViewBag.UserGuide2 = "Sem refeicoes"; } DateTime start = (DateTime)objectivo.Data_inicio; ViewBag.TooSoon = Convert.ToInt32(start.Subtract(DateTime.Now).TotalDays); return(View()); } } if (objectivo == null) { var objectivos = db.Objectivoes.FirstOrDefault(c => c.UserID == userId); if (objectivos != null) { ViewBag.Sem = "Sem objectivo"; } else { ViewBag.Sem = "Sem objectivo"; ViewBag.Userguide = "Nenhum criado"; } return(View()); } if ((int)DateTime.Now.DayOfWeek == 1 && peso == null) { if (refeico == null) { ViewBag.UserGuide2 = "Sem refeicoes"; } ViewBag.Teste = "Por favor indique o seu novo peso"; return(View()); } else { if (refeico == null) { ViewBag.UserGuide2 = "Sem refeicoes"; } return(View()); } }