예제 #1
0
        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"));
        }
예제 #2
0
 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));
 }
예제 #3
0
        // 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));
        }
예제 #4
0
        // 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));
        }
예제 #6
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));
        }
예제 #7
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());
            }
        }