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)); }
public ActionResult GetPeso([Bind(Include = "UserID,Nome,Genero,Data_nascimento,Peso,Altura,Actividade_fisica,Nr_horas_sono,Nr_refeicoes,Habitos_alcoolicos,MMuscular,MGorda")] Utilizador utilizador) { if (ModelState.IsValid) { var userId = Convert.ToInt32(User.Identity.GetUserId()); Utilizador mudar = db.Utilizadors.FirstOrDefault(o => o.UserID == userId); mudar.Peso = utilizador.Peso; db.Entry(mudar).State = EntityState.Modified; var actual = db.Objectivoes.FirstOrDefault(p => p.UserID == userId && p.Data_fim == null); UtilizadorsController x = new UtilizadorsController(); RegistoPeso peso = new RegistoPeso(); var age = x.GetAge((DateTime)mudar.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; } actual.Intake_diarioA = Convert.ToInt32(354 - (6.91 * age) + (Actividade * (9.36 * mudar.Peso + (726 * (mudar.Altura / 100))))); int Intake_diarioR = Convert.ToInt32(354 - (6.91 * age) + (Actividade * (9.36 * actual.Peso_objectivo + (726 * (mudar.Altura / 100))))); if (Intake_diarioR > 1800 & actual.Intake_diarioA - Intake_diarioR > 500) { actual.Intake_diarioR = actual.Intake_diarioA - 500; } else if (Intake_diarioR < 1800 & actual.Intake_diarioA - Intake_diarioR < 500) { actual.Intake_diarioR = 1800; } else { actual.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; } actual.Intake_diarioA = Convert.ToInt32(662 - (9.53 * age) + (Actividade * (15.91 * mudar.Peso + (539.6 * (mudar.Altura / 100))))); int Intake_diarioR = Convert.ToInt32(662 - (9.53 * age) + (Actividade * (15.91 * actual.Peso_objectivo + (539.6 * (mudar.Altura / 100))))); if (Intake_diarioR > 1800 & actual.Intake_diarioA - Intake_diarioR > 500) { actual.Intake_diarioR = actual.Intake_diarioA - 500; } else if (Intake_diarioR < 1800 & actual.Intake_diarioA - Intake_diarioR < 500) { actual.Intake_diarioR = 1800; } else { actual.Intake_diarioR = Intake_diarioR; } } db.Entry(actual).State = EntityState.Modified; peso.Peso = utilizador.Peso; peso.Data = DateTime.Today; peso.User_ID = userId; db.RegistoPesoes.Add(peso); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.UserID = new SelectList(db.AspNetUsers, "Id", "Email", utilizador.UserID); return(View(utilizador)); }