public static OpenGraphVM GetOpenGraphVMForTeam(Team t, HttpRequestBase Request, UrlHelper Url) { var ImageURL = Url.Action("GetImage", "Image", new { ImageID = t.ImageID}, protocol: Request.Url.Scheme); return new OpenGraphVM() { type = "article", title = $"{t.Name} on ChariFit", description = $"{t.Name} {t.Description}", image = ImageURL }; }
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; }
public static ChartLogic.chartData getChartDataForCaloriesPerUser(Team T) { var Labels = new List<ChartLogic.chartData.chartDataItem>(); var Series = new List<ChartLogic.chartData.chartDataItem>(); var Legends = new List<ChartLogic.chartData.chartDataItem>(); var UsersWithOffsets = T.Members.Where(m => m.Offsetters.Any()); foreach (var user in UsersWithOffsets) { var CalTotal = user.Offsetters.Where(o => o.Pledge.Activity_Units == PledgeActivity.ActivityUnits.Calories).Sum(o => o.OffsetAmount); if (CalTotal > 0) { Labels.Add(new ChartLogic.chartData.chartDataItem(CalTotal.ToString())); Series.Add(new ChartLogic.chartData.chartDataItem(CalTotal.ToString())); Legends.Add(new ChartLogic.chartData.chartDataItem(user.UserName)); } } return new ChartLogic.chartData(Legends, Series,Labels, GenericLogic.HTML.CALORIE_HTML + " Calories"); }
public static string getStarsHTMLForTeam(Team T) { var r = getStarsForTeam(T); return r.HasValue ? Utilities.StarsHTML(r.Value) : string.Empty; }
public static int? getStarsForTeam(Team T) { var sumRating = T.Members.Sum(UserLogic.GetStarsForUser); int? TeamStarRating = null; if (T.Members.Any()) TeamStarRating= sumRating / T.Members.Count(); return TeamStarRating; }
public static ChartLogic.chartData getChartDataForSponsorshipPerUser(Team T) { var Labels = new List<ChartLogic.chartData.chartDataItem>(); var Series = new List<ChartLogic.chartData.chartDataItem>(); var Legends = new List<ChartLogic.chartData.chartDataItem>(); var UsersWithSponsorship = T.Members.Where(m => m.Contributions.Any()); foreach(var user in UsersWithSponsorship) { var Amt = user.Contributions.Sum(c => CurrencyLogic.ToBase(c.Currency, c.Amount)).ToString("0.00"); Labels.Add(new ChartLogic.chartData.chartDataItem(Amt)); Series.Add(new ChartLogic.chartData.chartDataItem(Amt)); Legends.Add(new ChartLogic.chartData.chartDataItem(user.UserName)); } return new ChartLogic.chartData(Legends, Series, Labels, GenericLogic.HTML.SPONSORED_HTML + " Sponsored",true); }
public static ChartLogic.chartData getChartDataForSessionsPerUser(Team T) { var Labels = new List<ChartLogic.chartData.chartDataItem>(); var Series = new List<ChartLogic.chartData.chartDataItem>(); var Legends = new List<ChartLogic.chartData.chartDataItem>(); var UsersWithOffsets = T.Members.Where(m => m.Offsetters.Any()); foreach (var user in UsersWithOffsets) { var Amt = user.Offsetters.Count().ToString(); Labels.Add( new ChartLogic.chartData.chartDataItem(Amt)); Series.Add(new ChartLogic.chartData.chartDataItem(Amt)); Legends.Add(new ChartLogic.chartData.chartDataItem(user.UserName)); } return new ChartLogic.chartData(Legends, Series,Labels, GenericLogic.HTML.SESSIONS_HTML + " Sessions"); }
public static ChartLogic.chartData getChartDataForRaisedPerUser(Team T) { var Labels = new List<ChartLogic.chartData.chartDataItem>(); var Series = new List<ChartLogic.chartData.chartDataItem>(); var Legends = new List<ChartLogic.chartData.chartDataItem>(); var db = new ApplicationDbContext(); var UsersWithOffsets = T.Members.Where(m => m.Offsetters.Any()); foreach (var user in UsersWithOffsets) { var Amt = CurrencyLogic.ToBase(db.PledgeContributors.ToList().Where(c => c.Pledge.Offsets.Exists(o => o.Offsetter == user)).ToList()).ToString("0.00"); Labels.Add( new ChartLogic.chartData.chartDataItem(Amt )); Series.Add(new ChartLogic.chartData.chartDataItem(Amt)); Legends.Add(new ChartLogic.chartData.chartDataItem(user.UserName)); } return new ChartLogic.chartData(Legends, Series, Labels, GenericLogic.HTML.RAISED_HTML + " Raised", true); }
public static ChartLogic.chartData getChartDataForMilesPerUser(Team T) { var Labels = new List<ChartLogic.chartData.chartDataItem>(); var Series = new List<ChartLogic.chartData.chartDataItem>(); var Legends = new List<ChartLogic.chartData.chartDataItem>(); var UsersWithOffsets = T.Members.Where(m => m.Offsetters.Any()); foreach (var user in UsersWithOffsets) { var MilesTotal = user.Offsetters.Where(o => o.Pledge.Activity_Units == PledgeActivity.ActivityUnits.Miles).Sum(o => o.OffsetAmount); var MetersTotal = user.Offsetters.Where(o => o.Pledge.Activity_Units == PledgeActivity.ActivityUnits.Meters).Sum(o => o.OffsetAmount); var KmetersTotal = user.Offsetters.Where(o => o.Pledge.Activity_Units == PledgeActivity.ActivityUnits.Kilometers).Sum(o => o.OffsetAmount); KmetersTotal += (MetersTotal / 1000.00m); MilesTotal += (KmetersTotal * 0.621m); if (MilesTotal > 0) { var Amt = MilesTotal.ToString("0.00"); Labels.Add(new ChartLogic.chartData.chartDataItem(Amt)); Series.Add(new ChartLogic.chartData.chartDataItem(Amt)); Legends.Add(new ChartLogic.chartData.chartDataItem(user.UserName)); } } return new ChartLogic.chartData(Legends, Series,Labels, GenericLogic.HTML.MILES_HTML + " Miles"); }
public ActionResult Create(Team team) { if (ModelState.IsValid) { var user = CurrentUser(); if (user.TeamID.HasValue) { ModelState.AddModelError("", "You can't create a team if you're already a member of another team."); return View(team); } db.Teams.Add(team); user.IsTeamAdmin = true; user.Team = team; Messaging.Add(Message.LevelEnum.alert_success,$"Team '{team.Name}' successfully created. You have been added as the administrator of this team", Message.TypeEnum.StickyAlert, user); db.SaveChanges(); return RedirectToAction("Details", new { teamname=team.Name.Replace(" ","") }); } return View(team); }
public static SocialVM GetSocialVMForTeam(Team T, HttpRequestBase Request, UrlHelper Url) { return new SocialVM() { Type = SocialVM.SocialType.Team , LinkID = T.ID.ToString(), ShareURL = Url.Action("Details", "Teams", new { teamname = T.Name.Replace(" ", "") }, protocol: Request.Url.Scheme), Blurb = "" }; }