public void CreateAbsence(int personId, DateTime start, DateTime end, bool isPresent = false) { using (var db = new DataContext()) { var person = db.People.Find(personId); if (person == null) { throw new EntityNotFountException(); } var absence = new Absence() { Person = person, End = end, Start = start, IsPresent = isPresent, }; new AbsenceAdapter(absence) .Validate() .ClearOccupations(db); this.RemoveFromSchedule(person, start, end, db); db.Absences.Add(absence); db.SaveChanges(); } }
public AbsenceChecker(Absence absence, DateTime date) { this.Absence = absence; this.Date = date; }
public AbsenceAdapter(Absence absence) { this.Absence = absence; }
public AbsenceValidator(Absence absence) { this.Absence = absence; }
public ValidationStatusDto IsValidAbsence(int personId, DateTime start, DateTime end) { using (var db = new DataContext()) { var person = (from b in db.People where b.Id == personId select b).FirstOrDefault(); if (person == null) { throw new EntityNotFountException(); } var absence = new Absence() { Person = person, End = end, Start = start, }; var validator = new AbsenceValidator(absence); return validator.Validate() ? ValidationStatusDto.Valid() : ValidationStatusDto.Invalid(validator.Error); } }