public ActionResult Edit([Bind(Include = "UserID,Nome,Genero,Data_nascimento,Peso,Altura,Actividade_fisica,Nr_horas_sono,Nr_refeicoes,Habitos_alcoolicos,MMuscular,MGorda")] Utilizador utilizador, string roleName) { if (ModelState.IsValid) { db.Entry(utilizador).State = EntityState.Modified; RegistoPeso peso = new RegistoPeso() { Peso = utilizador.Peso, Data = DateTime.Today, User_ID = utilizador.UserID }; db.RegistoPesoes.Add(peso); var role = db.AspNetRoles.FirstOrDefault(r => r.Name == roleName); if (role == null) { return(HttpNotFound()); } var userRoles = userManager.GetRoles(utilizador.UserID); foreach (string r in userRoles) { userManager.RemoveFromRole(utilizador.UserID, r); } userManager.AddToRole(utilizador.UserID, role.Name); db.Entry(utilizador).State = EntityState.Modified; // o utilizador foi modificado db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.UserID = new SelectList(db.AspNetUsers, "Id", "Email", utilizador.UserID); ViewBag.Roles = new SelectList(db.AspNetRoles, "Name", "Name"); return(View(utilizador)); }
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)); }
// 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()); } }
// para editar os campos public ActionResult Index([Bind(Include = "UserID,Nome,Genero,Data_nascimento,Peso,Altura,Actividade_fisica,Nr_horas_sono,Nr_refeicoes,Habitos_alcoolicos,MMuscular,MGorda")] Eutilizador perfilEdit) { int userId = Convert.ToInt32(User.Identity.GetUserId()); Utilizador perfil = db.Utilizadors.FirstOrDefault(o => o.UserID == userId); perfil.Nome = perfilEdit.Nome; perfil.Genero = perfilEdit.Genero; perfil.Data_nascimento = perfilEdit.Data_nascimento; perfil.Peso = perfilEdit.Peso; perfil.Altura = perfilEdit.Altura; perfil.Actividade_fisica = perfilEdit.Actividade_fisica; perfil.Nr_horas_sono = perfilEdit.Nr_horas_sono; perfil.Nr_refeicoes = perfilEdit.Nr_refeicoes; perfil.MGorda = perfilEdit.MGorda; perfil.MMuscular = perfilEdit.MMuscular; ViewBag.Genders = new SelectList(new List <SelectListItem> { new SelectListItem { Selected = true, Text = "M", Value = "M" }, new SelectListItem { Selected = false, Text = "F", Value = "F" }, }, "Value", "Text"); ViewBag.Atividade = new SelectList(new List <SelectListItem> { new SelectListItem { Text = "1", Value = "1" }, new SelectListItem { Text = "2", Value = "2" }, new SelectListItem { Text = "3", Value = "3" }, new SelectListItem { Text = "4", Value = "4" }, }, "Value", "Text", perfilEdit.Actividade_fisica); if (ModelState.IsValid) { var error = false; if (perfilEdit.Nome == null) { ModelState.AddModelError("Nome", "Introduza o Nome"); error = true; } if (error == true) { return(View()); } if (perfilEdit.Genero == null) { ModelState.AddModelError("Genero", "Introduza o Genero"); error = true; } if (error == true) { return(View()); } if (perfilEdit.Data_nascimento == null) { ModelState.AddModelError("Data_Nascimento", "Introduza a Data de Nascimento"); error = true; } if (error == true) { return(View()); } if (perfilEdit.Peso == null) { ModelState.AddModelError("Peso", "Introduza o Peso"); error = true; } if (error == true) { return(View()); } if (perfilEdit.Altura == null) { ModelState.AddModelError("Altura", "Introduza a sua Altura"); error = true; } if (error == true) { return(View()); } if (perfilEdit.Actividade_fisica == null) { ModelState.AddModelError("Actividade_fisica", "Introduza o Indice de Atividade Fisica"); error = true; } RegistoPeso peso = new RegistoPeso() { Data = DateTime.Today, Peso = perfilEdit.Peso, User_ID = userId }; db.RegistoPesoes.Add(peso); db.Entry(perfil).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index", "Manage")); } return(View(perfilEdit)); }