public IExamApplication ApplyFor([NotNull] IExam exam) { ExamApplicationBuilder builder = new ExamApplicationBuilder(); builder.OnSubject(exam.OnSubject); builder.AdministratedBy(exam.AdministratedBy); builder.TakenBy(this); IExamApplication application = builder.Build(); this.Exams.Add(application); return(application); //if (!CanApplyFor(exam)) // throw new ArgumentException(); //return new Implementation.ExamApplication(new Exam(exam.OnSubject, exam.AdministratedBy), this); }
private bool CanAssignGrade(IExamApplication onExam) => onExam.Grade.Map(_ => false).Reduce(true);
private bool Validate(IExamApplication app) => true;