Example #1
0
        public static TeamActivityStats getActivityStatsForTeam(Team T)
        {
            var stats = new TeamActivityStats();

            var db = new ApplicationDbContext();

            var teamOffsets           = db.Offsets.Where(o => o.Offsetter.Team.ID == T.ID).ToList();
            var teamGroupedActivities = teamOffsets.GroupBy(o => o.Pledge.Activity_Units).ToList();

            var calTotal      = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Calories)?.Sum(a => a.OffsetAmount);
            var HoursTotal    = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Hours)?.Sum(a => a.OffsetAmount);
            var MinutesTotal  = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Minutes)?.Sum(a => a.OffsetAmount);
            var KmetersTotal  = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Kilometers)?.Sum(a => a.OffsetAmount);
            var MetersTotal   = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Meters)?.Sum(a => a.OffsetAmount);
            var MilesTotal    = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Miles)?.Sum(a => a.OffsetAmount);
            var SessionsTotal = teamOffsets.Count();

            stats.BaseCurrencySponsoredTotal = Math.Round(CurrencyLogic.ToBase(db.PledgeContributors.Where(pc => pc.Sinner.Team.ID == T.ID).ToList()), 2);
            stats.BaseCurrencyRaisedTotal    = Math.Round(CurrencyLogic.ToBase(db.PledgeContributors.ToList().Where(pc => pc.Pledge.Offsets.Exists(o => o.Offsetter.Team?.ID == T.ID)).ToList()), 2);

            MetersTotal  = MetersTotal.HasValue ? MetersTotal : 0;
            KmetersTotal = KmetersTotal.HasValue ? KmetersTotal : 0;
            MinutesTotal = MinutesTotal.HasValue ? MinutesTotal : 0;
            MilesTotal   = MilesTotal.HasValue ? MilesTotal : 0;
            HoursTotal   = HoursTotal.HasValue ? HoursTotal : 0;

            HoursTotal   += (MinutesTotal / 60m);
            KmetersTotal += (MetersTotal / 1000.00m);
            MilesTotal   += (KmetersTotal * 0.621m);


            stats.Calories = calTotal.HasValue ? Math.Round(calTotal.Value, 2) : 0;
            stats.Hours    = HoursTotal.HasValue ? Math.Round(HoursTotal.Value, 2) : 0;
            stats.Miles    = MilesTotal.HasValue ? Math.Round(MilesTotal.Value, 2) : 0;
            stats.Sessions = SessionsTotal;

            return(stats);
        }
Example #2
0
        public static TeamActivityStats getActivityStatsForTeam(Team T)
        {
            var stats = new TeamActivityStats();

            var db = new ApplicationDbContext();

            var teamOffsets = db.Offsets.Where(o => o.Offsetter.Team.ID == T.ID).ToList();
            var teamGroupedActivities = teamOffsets.GroupBy(o => o.Pledge.Activity_Units).ToList();

            var calTotal = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Calories)?.Sum(a => a.OffsetAmount);
            var HoursTotal = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Hours)?.Sum(a => a.OffsetAmount);
            var MinutesTotal = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Minutes)?.Sum(a => a.OffsetAmount);
            var KmetersTotal = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Kilometers)?.Sum(a => a.OffsetAmount);
            var MetersTotal = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Meters)?.Sum(a => a.OffsetAmount);
            var MilesTotal = teamGroupedActivities.FirstOrDefault(g => g.Key == PledgeActivity.ActivityUnits.Miles)?.Sum(a => a.OffsetAmount);
            var SessionsTotal = teamOffsets.Count();

            stats.BaseCurrencySponsoredTotal = Math.Round(CurrencyLogic.ToBase(db.PledgeContributors.Where(pc => pc.Sinner.Team.ID == T.ID).ToList()),2);
            stats.BaseCurrencyRaisedTotal = Math.Round(CurrencyLogic.ToBase(db.PledgeContributors.ToList().Where(pc => pc.Pledge.Offsets.Exists(o => o.Offsetter.Team?.ID == T.ID)).ToList()), 2);

            MetersTotal = MetersTotal.HasValue ? MetersTotal : 0;
            KmetersTotal = KmetersTotal.HasValue ? KmetersTotal : 0;
            MinutesTotal = MinutesTotal.HasValue ? MinutesTotal : 0;
            MilesTotal = MilesTotal.HasValue ? MilesTotal : 0;
            HoursTotal = HoursTotal.HasValue ? HoursTotal : 0;

            HoursTotal += (MinutesTotal / 60m);
            KmetersTotal += (MetersTotal / 1000.00m);
            MilesTotal += (KmetersTotal * 0.621m);

            stats.Calories = calTotal.HasValue ? Math.Round(calTotal.Value,2) : 0;
            stats.Hours= HoursTotal.HasValue ? Math.Round(HoursTotal.Value,2) : 0;
            stats.Miles= MilesTotal.HasValue ? Math.Round(MilesTotal.Value,2) : 0;
            stats.Sessions = SessionsTotal;

            return stats;
        }