Esempio n. 1
0
        public IActionResult Dashboard()
        {
            try
            {
                string username = null;

                if (HttpContext.Session.GetString("LoggedIn") != null)
                {
                    username = HttpContext.Session.GetString("Username");
                }
                else
                {
                    return(RedirectToAction("Index"));
                }



                DashboardFunctions loadUser = new DashboardFunctions(username);
                UserClass          thisUser = new UserClass(username);
                ViewBag.TodayAct = loadUser.GetDailyActivityList();
                var      TrackerList  = db.ProgressTracker.ToList();
                var      exerciseList = db.ExercisesListTable.ToList();
                var      existFood    = db.FoodData.OrderBy(z => z.Id).ToList();
                DateTime dt           = DateTime.Now;
                var      latestMonth  = TrackerList.Where(z => z.UserName.ToLower() == username.ToLower()).Max(x => x.Month); //latest week since update

                //get Current date in the format specified
                ViewBag.date = dt.ToString("MMMM dd, yyyy", CultureInfo.CreateSpecificCulture("en-US"));

                ViewBag.TimeExceeded = loadUser.TimeOverdue(dt, latestMonth);
                var      RecordedWeeks = TrackerList.Where(z => z.UserName.ToLower() == username.ToLower()).Count();
                string[] weeks         = new string[RecordedWeeks];

                for (int i = 0; i < RecordedWeeks; i++)
                {
                    weeks[i] = "Month " + (i + 1);
                }

                var       WeeklyBMI        = TrackerList.Where(z => z.UserName.ToLower() == username.ToLower()).OrderBy(k => k.Month).Select(x => x.Bmi).ToArray();
                var       exercisesArray   = exerciseList.OrderBy(f => f.ExerciseList).Select(s => s.ExerciseList.Substring(0, s.ExerciseList.Length - 1)).ToArray();
                var       exercisesIDArray = exerciseList.OrderBy(f => f.ExerciseList).Select(s => s.ExerciseId).ToArray();
                var       FoodsDBArray     = existFood.Select(z => z.Food).ToArray();
                var       FoodsIDArray     = existFood.Select(z => z.Id).ToArray();
                var       proteins         = existFood.Select(z => Math.Round((double)z.Protein, 2)).ToArray();
                var       Cal         = existFood.Select(z => Math.Round((double)z.Calorie, 2)).ToArray();
                var       Carb        = existFood.Select(z => Math.Round((double)z.Carbs, 2)).ToArray();
                var       Fat         = existFood.Select(z => Math.Round((double)z.Fat, 2)).ToArray();
                string [] macroString = new string[Cal.Length];
                for (int k = 0; k < Cal.Length; k++)
                {
                    macroString[k] = "   |Calorie:" + Cal[k] + "  |Protein:" + proteins[k] + "  |Carb:" + Carb[k] + "  |Fats:" + Fat[k] + "|";
                }
                ViewBag.MacroString = macroString;


                var WeeklyW2H = TrackerList.Where(z => z.UserName.ToLower() == username.ToLower()).OrderBy(k => k.Month).Select(x => x.Wc).ToArray();
                ViewBag.BMI    = Math.Round(TrackerList.Where(z => z.UserName.ToLower() == username.ToLower() && z.Month == latestMonth).Select(x => x.Bmi).FirstOrDefault(), 2);
                ViewBag.Weight = TrackerList.Where(z => z.UserName.ToLower() == username.ToLower() && z.Month == latestMonth).Select(x => x.MonthlyWeight).FirstOrDefault();
                var newValues = exercisesArray.Select(x => x.Substring(0, x.Length - 1)).ToArray();

                ViewBag.Consumption = thisUser.CalConsumption();

                ViewBag.ExerciseIDArr = exercisesIDArray;
                ViewBag.ExerciseArr   = exercisesArray;

                ViewBag.FoodsArr   = FoodsDBArray;
                ViewBag.FoodsIDArr = FoodsIDArray;

                ViewBag.WeeklyW2Hs = WeeklyW2H;
                ViewBag.WeeklyBMIs = WeeklyBMI;
                ViewBag.weeks      = weeks;

                ViewBag.username = username;

                var dietuser = db.DietUsers.Find(username);

                ViewBag.NewUser = dietuser.NewUser; //display model if its a new user

                ViewBag.Macros          = db.UserMacros.Where(z => z.Username.ToLower() == username.ToLower()).FirstOrDefault();
                ViewBag.ChoosenAllegies = loadUser.GetAllergiesList();


                ViewBag.ChoosenPreferences = loadUser.GetPreferencesList();

                return(View());
            }
            catch (SqlException)
            {
                string action     = this.ControllerContext.RouteData.Values["action"].ToString();
                string controller = this.ControllerContext.RouteData.Values["controller"].ToString();
                return(RedirectToAction("Error", new { controllerName = controller, actionName = action }));
            }
        }