namespace Core.Entities; public class PartialTeam : Team { public IList OmittedStudents { get; } public PartialTeam(string name, CompetitiveEvent @event, IList students, IList omittedStudents) : base(name, @event, students) { OmittedStudents = omittedStudents; } public override Team CloneWithOmittedStudents(IEnumerable studentsToOmit) { var remainingStudents = Students.Where(s => !studentsToOmit.Contains(s)).ToList(); var omittedStudents = OmittedStudents.Union(Students.Where(studentsToOmit.Contains)).Distinct().ToList(); return new PartialTeam(Name, Event, remainingStudents, omittedStudents ); } }