using Core.Entities; using Core.Validation.Rules.BaseRules; namespace Core.Validation.Rules.StudentRankingRules; /// /// Validation rule that checks if a student has ranked at least one on-site activity /// public class NoOnSiteActivityRule : RequiredEventTypeRuleBase { protected override bool IsRequired(ValidationConfiguration config) => config.RequireOnSiteActivity; protected override bool HasEventType(Student student) => student.RankedEvents.Any(e => e.OnSiteActivity); protected override ValidationSeverity GetSeverity(ValidationConfiguration config) => config.NoOnSiteActivitySeverity; protected override string Code => "NO_ONSITE_ACTIVITY"; protected override string Message => "No On-Site Activity"; protected override string IconIdentifier => "OnSiteActivity"; }