public IActionResult Index(DateTime?startDate, DateTime?endDate, int?weight)
        {
            var user      = authProvider.GetCurrentUser();
            var userFoods = dal.GetUserFoods(user.Id);

            SavedDates   dates        = GetActiveSavedDates(startDate, endDate);
            TodaysWeight todaysWeight = GetTodaysWeight(weight, user);
            var          userWeights  = weightDal.GetWeights(user, dates.StartDate, dates.EndDate);

            var weightIsLogged = weightDal.GetTodaysWeight(user);

            if (!weightIsLogged)
            {
                ModelState.AddModelError("log-your-weight", "Enter today's weight");
            }

            if (user != null)
            {
                Tuple <User, IList <UserFood>, IList <UserWeight>, TodaysWeight, bool> data = new Tuple <User, IList <UserFood>, IList <UserWeight>, TodaysWeight, bool>(user, userFoods, userWeights, todaysWeight, weightIsLogged);

                var weightData = new List <int>();
                var dateData   = new List <string>();

                foreach (var item in userWeights)
                {
                    weightData.Add(item.TodaysWeight);
                }

                foreach (var date in userWeights)
                {
                    dateData.Add(date.DateOfEntry.ToShortDateString());
                }

                ViewBag.AllUserWeights = weightData;
                ViewBag.AllUserDates   = dateData;

                return(View(data));
            }

            //Viewbag for chart data


            return(RedirectToAction("Index", "Home"));
        }
        private SavedDates GetActiveSavedDates(DateTime?startDate, DateTime?endDate)
        {
            SavedDates dates = HttpContext.Session.Get <SavedDates>(Session_Key);

            // See if the user has a cart in session
            if (dates == null)
            {
                dates           = new SavedDates();
                dates.StartDate = DateTime.Today.AddDays(-10);
                dates.EndDate   = DateTime.Today;
                HttpContext.Session.Set(Session_Key, dates);
            }
            else if (startDate != null && endDate != null)
            {
                dates.StartDate = (DateTime)startDate;
                dates.EndDate   = (DateTime)endDate;
                HttpContext.Session.Set(Session_Key, dates);
            }

            return(dates);
        }