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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        // 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());
            }
        }
Пример #4
0
        // 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));
        }