namespace Core.Entities; public class StudentEventStatistics { public Student Student { get; set; } public List Events { get; set; } = []; public int? TotalLevelOfEffort => Events.Sum(e => e.LevelOfEffort); public int EventCount => Events.Count; public bool HasRegionalEvent => Events.Any(e => e.RegionalEvent); public bool HasOnSiteActivity => Events.Any(e => e.OnSiteActivity); public static List Generate(ICollection teams) { Dictionary statistics = []; foreach (var team in teams) { foreach (var student in team.Students) { if (!statistics.ContainsKey(student)) statistics.Add(student, new StudentEventStatistics(){Student = student}); statistics[student].Events.Add(team.Event); } } return statistics.Values.ToList(); } }