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 })); } }