public Guid AddCandidate(string surname, string forenames) { if (string.IsNullOrWhiteSpace(surname)) { throw new ArgumentException("Surname must have a value.", "surname"); } if (string.IsNullOrWhiteSpace(forenames)) { throw new ArgumentException("Forenames must have a value.", "forenames"); } var assessmentResult = new AssessmentResult(surname, forenames); if (this.results.Contains(assessmentResult)) { throw new UniqueConstraintException(string.Format("A candidate with name \"{0}, {1}\" alread exists.", surname, forenames)); } this.results.Add(assessmentResult); return assessmentResult.Id; }
public void SetCandidateNames(Guid id, string surname, string forenames) { if (string.IsNullOrWhiteSpace(surname)) { throw new ArgumentException("Surname must have a value.", "surname"); } if (string.IsNullOrWhiteSpace(forenames)) { throw new ArgumentException("Forenames must have a value.", "forenames"); } var existingResult = this.results.Single(r => r.Id == id); var newResult = new AssessmentResult(id, surname, forenames, existingResult.Result); if (this.results.Where(r => r.Id != existingResult.Id).Any(r => r.Surname == surname && r.Forenames == forenames)) { throw new UniqueConstraintException(string.Format("A candidate with name \"{0}, {1}\" alread exists.", surname, forenames)); } this.results.Remove(existingResult); this.results.Add(newResult); }
public void SetCandidateResult(Guid id, decimal? result) { if (result.HasValue) { if (result < 0) { throw new ArgumentOutOfRangeException("result", "Result be a positive number."); } if (this.TotalMarks.HasValue && result > this.TotalMarks) { throw new ArgumentOutOfRangeException( "result", "Result must be lower than or equal to the total marks."); } } var existingResult = this.results.Single(r => r.Id == id); var newResult = new AssessmentResult(id, existingResult.Surname, existingResult.Forenames, result); this.results.Remove(existingResult); this.results.Add(newResult); }