public async Task <ActionResult> CumulativeGenderGroupBreakdown()
        {
            var demographicTable             = new DemographicTableViewModel();
            IEnumerable <Resident> residents = await db.Residents.AsNoTracking().ToListAsync().ConfigureAwait(false);

            List <GenderGroup> genders = GenerateGenderComposition(residents);

            demographicTable.GenderComposition = genders;

            return(PartialView("_GenderGroupBreakdown", demographicTable));
        }
        public async Task <ActionResult> GenderGroupBreakdown()
        {
            var demographicTable       = new DemographicTableViewModel();
            List <GenderGroup> genders = new List <GenderGroup>();
            var residents = await db.Residents.AsNoTracking().ToListAsync().ConfigureAwait(false);

            var currentResidents = residents.Where(cur => cur.IsCurrent);

            genders = GenerateGenderComposition(currentResidents);

            demographicTable.IsCurrent         = true;
            demographicTable.GenderComposition = genders;

            return(PartialView("_GenderGroupBreakdown", demographicTable));
        }
        public async Task <ActionResult> AgeGroupBreakdown()
        {
            var demographicTable       = new DemographicTableViewModel();
            List <AgeGroups> ageGroups = new List <AgeGroups>();

            IEnumerable <Resident> residents = await Task.Run(() => db.Residents.AsNoTracking().ToList().Where(cur => cur.IsCurrent)).ConfigureAwait(false);

            ageGroups = await GenerateAgeComposition(residents).ConfigureAwait(false);

            ViewBag.Sum        = ageGroups.Sum(group => group.Count);
            ViewBag.AverageAge = GetAverageAge(residents.ToList(), true).ToString("n2", new CultureInfo("en-US"));

            demographicTable.AgeComposition = ageGroups;
            demographicTable.IsCurrent      = true;
            return(PartialView("_AgeGroupBreakdown", demographicTable));
        }