public AccountView(TGFCContext _ctx, IEnumerable <Claim> _claims)
        {
            CurrentUser   = Queries.GetUserByClaims(_ctx, _claims);
            Disciplines   = Queries.GetAllDisciplines(_ctx);
            ActivityTypes = Queries.GetAllActivityTypes(_ctx);
            if (CurrentUser.Department.Directorate.ChallengeStartDate == null || CurrentUser.Department.Directorate.ChallengeEndDate == null)
            {
                ChallengeStartDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                ChallengeEndDate   = ChallengeStartDate.AddMonths(1).AddMinutes(-1);
            }
            else
            {
                ChallengeStartDate = (DateTime)CurrentUser.Department.Directorate.ChallengeStartDate;
                ChallengeEndDate   = (DateTime)CurrentUser.Department.Directorate.ChallengeEndDate;
            }

            List <DateTime> dates = GetDatesBetween(ChallengeStartDate, ChallengeEndDate);

            foreach (var date in dates)
            {
                LineChartLabels.Add($"{date.ToString("dd/MM/yy")}");
            }

            TotalCalories = Calories.CalculateTotalCalories(CurrentUser.Activities.Where(a => a.StartTime >= ChallengeStartDate && a.EndTime <= ChallengeEndDate).ToList());

            for (int i = 0; i < Disciplines.Count; i++)
            {
                PieChartData.Add(0);
            }

            List <int> allCounter = new List <int>();

            for (int j = 0; j < dates.Count; j++)
            {
                allCounter.Add(0);
            }

            foreach (var dscpln in Disciplines)
            {
                List <int> temp;
                if (!LineChartData.TryGetValue(dscpln.NameNormalized, out temp))
                {
                    temp = new List <int>();
                    for (int j = 0; j < dates.Count; j++)
                    {
                        temp.Add(0);
                    }
                }
                LineChartData[dscpln.NameNormalized] = temp;
            }

            foreach (var ac in CurrentUser.Activities.Where(a => a.StartTime >= ChallengeStartDate && a.EndTime <= ChallengeEndDate))
            {
                List <int> temp;
                if (!LineChartData.TryGetValue(ac.ActivityType.Discipline.NameNormalized, out temp))
                {
                    temp = new List <int>();
                    for (int j = 0; j < dates.Count; j++)
                    {
                        temp.Add(0);
                    }
                }
                int day = (ac.StartTime.Day - ChallengeStartDate.Day);

                int value = temp[day];
                temp[day] = ++value;

                int value2 = allCounter[day];
                allCounter[day] = ++value2;

                LineChartData[ac.ActivityType.Discipline.NameNormalized] = temp;

                int index = Disciplines.IndexOf(ac.ActivityType.Discipline);
                PieChartData[index] = PieChartData[index] + 1;
            }
            LineChartData["all"] = allCounter;

            foreach (var dscpln in Disciplines)
            {
                DisciplineNames.Add(dscpln.NameNormalized);
                PieChartLabels.Add(dscpln.Name);
                PieChartColors.Add(dscpln.Color);
            }
            DisciplineNames.Add("all");
        }