示例#1
0
        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));
        }
示例#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));
        }